将XLSX文件嵌入到exe C#中

时间:2017-04-09 00:38:42

标签: c# .net excel embed xlsx

我在VS17中编写代码,该代码使用存储在xlsx文件中的数据库(到目前为止,它通过读取文件的路径并使用OLE.DB读取它来使用):

string DataBase_File = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString(), String.Format("{0}", db_name));

string constr = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=NO""", DataBase_File);
using (OleDbConnection conn = new OleDbConnection(constr))
{
    conn.Open();
    OleDbCommand command = new OleDbCommand(string.Format("Select * from [{0}]", SheetName), conn);
    OleDbDataReader reader = command.ExecuteReader();

当我想将其编译到.exe文件中时,我按以下方式将文件添加到资源中:

var fileString = namespace.Properties.Resources.DataBase;

但是,我得到的结果是fileString是{bytes[28432]}

如何使其成为一个路径或文件,我可以将其中的值实际用作数据库?

谢谢

1 个答案:

答案 0 :(得分:0)

有线

var fileString = namespace.Properties.Resources.DataBase;

您正在获取字节数组(byte[])并且您正在尝试将该字节数组用作excel文件的路径。不幸的是,这不起作用。将fileString指定为文件名时,您获得.ToString()的{​​{1}},因此byte[]

唯一能实现的任务是将该字节写入(临时)文件,从中获取数据,以及删除临时文件。为此,您可以执行以下操作:

{bytes[28432]}