【问题标题】:Can't find Excel file in embedded resource在嵌入式资源中找不到 Excel 文件
【发布时间】:2016-11-21 08:24:34
【问题描述】:

我希望我的 winforms 用户下载一个他们应该填写的 excel 模板。 我已将 Excel 文件作为资源添加到我的项目资源中,但我似乎无法读取该文件以再次保存它。

 var test = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
//One of the entries in test = MyProject.Properties.Resources.resources

 Assembly assembly = Assembly.GetExecutingAssembly();
 Assembly asm = Assembly.GetExecutingAssembly();
 Stream fileStream1 = asm.GetManifestResourceStream("MyProject.Properties.Resources.resources.ExcelTemplate.xlsx");

int len = fileStream1.Length; //Give error: Object reference not set to an instance of an object.

(文件不必在资源中,它也可以是普通文件,但我不能正常工作)

【问题讨论】:

    标签: c# resources manifest .net-assembly


    【解决方案1】:

    如果您需要执行复制文件以外的操作。我猜您可能必须使用 Microsoft interop 或其他一些库。下面简单地将文件复制到目的地。

    下面还有你的行 你说excel文件是模板,excel模板扩展名是xltx不是xlsx

    Stream fileStream1 = asm.GetManifestResourceStream("MyProject.Properties.Resources.resources.ExcelTemplate.xlsx");
    

    我不确定您是否必须以这种方式引用它。但是请确保您正在获取文件,我猜您不是因此错误。看看我的线路是如何构成的。 ExcelAsResource 是项目名称。

    希望这会有所帮助。

    Assembly asm = Assembly.GetExecutingAssembly();
    Stream s = asm.GetManifestResourceStream("ExcelAsResource.Resources.TestEmbeddedExcel.xlsx");
    FileStream fs = new FileStream(@"C:\Users\John\Desktop\cs\TestCopy.xlsx", FileMode.OpenOrCreate);
    s.CopyTo(fs);
    fs.Close();
    s.Close();
    

    【讨论】:

    • 谢谢。是的,我相信我对文件的引用不存在。不知道为什么。您的代码给出了同样的错误。 “对象引用未设置为对象的实例”在行“s.CopyTo(fs);”
    • 再次听起来文件不存在。我将不得不检查您更新的行:Stream fileStream1 = asm.GetManifestResourceStream("MyProject.Properties.Resources.resources.ExcelTemplate.xlsx"); 此行显然没有返回您的文件,我会仔细检查路径。我觉得不合适。
    • 这将取决于您可能如何构建文件,但是当您添加显示的 excel 资源时,Resources 不在Properties 部分下,它将在projectName.Resources.FileName 下。我猜属性限定符在错误的地方寻找文件。
    • 另外...您的图片显示 excel 文件是一个模板...如果它是一个模板文件,那么即使路径正确它也会失败,因为模板具有扩展名 xltx。 ..你有xlsx
    猜你喜欢
    • 2015-03-09
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2011-01-09
    • 2011-04-27
    相关资源
    最近更新 更多