![](/img/trans.png)
[英]How do I import a .discomap file into my project in Visual Studio 2012?
[英]Visual Studio 2012: How do I open an excel file that is associated with my project?
因此,我正在开发一个项目,该项目使用excel文件向用户控件添加“说明”。截至目前,我的代码使用绝对路径打开excel文件,如下所示
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:\absolute path\filename.xlsx", Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing);
效果很好。
然后,我尝试重命名该文件(只是为了确保未出于某些奇怪的原因打开C:\\文件)并将其添加到我的项目中,这样我就不必依赖能够访问特定驱动器了(即文件可以打开,因为它与项目相关联)。 然后,我尝试了以下代码:
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"newfileName.xlsx", Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing);
这给了我这个:
“其他信息:找不到'newfileName.xlsx'。请检查文件名的拼写,并验证文件位置是否正确。”
我想知道将excel文件添加到项目并使用相对路径名打开它的正确方法是什么?
第二个示例尝试在工作目录中打开此文件。 因此,如果要在构建时复制此文件,只需将此文件的“复制到输出目录”属性更改为“ true”
如果要将文件与项目关联,则需要资源。 在这里,您可以了解如何向项目添加资源:
资源是流。 它们存储在内存中。 因此,我建议您使用需要Stream的类。 不是文件的路径。
因为Workbooks.Open
从文件的路径创建Stream。 寻找直接使用流的重载或替代类更好。
var doc = SpreadSheetDocument.Open(Properties.Resources.YourFile , isEditable);
isEditable
是布尔值。 您可以使用true
或false
。 如果将其设置为false,它将是只读的。
我建议您看一下该主题以:
任何方式如果您想使用当前类。 您必须将Stream临时保存到Disk并从中获取路径。 它可以工作,但是还有很多工作要做,因为您可以直接使用Stream。
string path = Path.GetTempPath(); // Creates a Temp path for temporary file.
Properties.Resources.Yourfile.Save(path); // Save the file into path.
// Now you can use path to load file with xlApp.Workbooks.Open again!
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(path,...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.