打开Excel工作簿文件使用embedded式资源
我正在使用Microsoft Office Interop来打开Excel文件。 该文件放置在工作簿代码读取文件的特定文件夹中。 现在,要求是Excel文件可以放在任何地方。 我相信最好的办法是将Excel文件作为embedded式资源。 但是,如果我作为embedded式资源附加,我将如何使用Excel工作簿读取文件。
_excelapplication.Workbooks.Open(Filename: pExcelTemplatePath);
无论文件位置如何,读取excel模板文件的最佳方法是什么?
您不能直接从embedded式资源中打开它,至less不能使用Interop …
你需要把它保存在一个文件的某个地方 – 也就是说首先从资源中读取它(例如通过Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceNameOfEmbeddedExcelFile)
),然后把这个stream写到ApplicationData
/ CommonApplicationData
/ LocalApplicationData
/ MyDocuments
/来自Environment.SpecialFolder
CommonDocuments
另一个select是使用能够打开/编辑Excel文件的库 – 让我知道如果你需要一些链接到库…
首先你应该使用这个函数获取资源文件的stream:
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; }
然后,您可以将stream保存到文件: 如何将stream保存到文件 。
并打开它: 如何在C#中打开一个Excel文件 。