【问题标题】:Open Excel Workbook file Using Embedded Resource使用嵌入式资源打开 Excel 工作簿文件
【发布时间】:2012-12-17 17:29:54
【问题描述】:

我正在使用 Microsoft Office Interop 打开 Excel 文件。该文件被放置在一个特殊的文件夹中,工作簿代码从该文件夹中读取该文件。现在,要求是 Excel 文件可以放在任何地方。我认为最好的方法是将 Excel 文件作为嵌入式资源附加。但是,如果我附加为嵌入式资源,我将如何使用 Excel 工作簿读取文件。

_excelapplication.Workbooks.Open(Filename: pExcelTemplatePath);

无论文件的位置如何,读取 excel 模板文件的最佳方法是什么?

【问题讨论】:

  • 您要编辑模板还是仅基于它创建一个新文档?
  • 只要根据它新建一个文档即可。我将构建操作设置为内容,现在我可以在发布的文件夹中看到该文件。
  • 关于点击见msdn.microsoft.com/en-us/library/6fehc36e.aspx - 需要进一步帮助吗?

标签: c# excel resources embedded-resource excel-interop


【解决方案1】:

您不能直接从嵌入式资源中打开它——至少不能使用 Interop...

您需要将其作为文件保存在某处 - 即首先从资源中读取它(例如通过Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceNameOfEmbeddedExcelFile)),然后将该流写入某个位置,例如ApplicationData / CommonApplicationData / LocalApplicationData / MyDocuments / CommonDocuments from Environment.SpecialFolder

另一种选择是使用能够从流中打开/编辑 Excel 文件的库 - 如果您需要一些库链接,请告诉我...

【讨论】:

  • 我不介意这些库的链接,我正在研究一种让人们从流中编辑 Office 文档的方法。
  • @BigBadOwl 我认为你应该发布一个新问题......尤其是。还有一些额外的上下文,例如:除了能够从流中打开之外,“让人们从流中编辑 Office 文档”还需要哪些功能?哪些办公格式(excel、word、powerpoint...2003 和/或 2010)?
【解决方案2】:

首先你应该使用这个函数获取你的资源文件流:

 public static Stream GetResourceFileStream(string fileName)
            {
                Assembly currentAssembly = Assembly.GetExecutingAssembly();
                // Get all embedded resources
                string[] arrResources = currentAssembly.GetManifestResourceNames();

                foreach (string resourceName in arrResources)
                {
                    if (resourceName.Contains(fileName))
                    {
                        return currentAssembly.GetManifestResourceStream(resourceName);
                    }
                }

                return null;
            }

然后您可以将流保存到文件:How do I save a stream to a file

然后打开它:How to open an Excel file in C#

【讨论】:

    猜你喜欢
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2013-12-05
    • 2023-03-31
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多