How can I build an Excel file without Office or any 3rd party dependencies installed?
Windows窗体应用程序(C),我们已经基于.xlsx文件导入了文件。我的任务是写一个新的部分,自动生成电子表格。为它创建数据很容易(并且已经完成)。我有创建电子表格所需的任何额外信息,除了…
他们在11点告诉我,服务器上没有安装Microsoft Office,所以
我可以很好地将它解析成.csv文件,但选择该文件的代码只查找.xlsx文件。所以尽管我可以在Excel中打开它,但这并不能提供真正的解决方案。
因此,对于我所有的研究,我都没有找到一个问题的答案:"我可以手动构建一个.xlsx文件吗?"我认为我得到的最接近实际使用的是OLEDB,但是由于电子表格不存在于门外,所以每次我到达下面代码中的
有什么简单的方法可以让我自己创建这个文件吗?我知道.xlsx基本上是压缩的XML,但是我找不到任何引用,在那里我可以看到我需要在文件中放置哪些标记,然后如何正确地压缩它?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | string cnStr ="Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + filePathAndName +";Persist Security Info=True;"; using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(cnStr)) { conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.CommandText ="CREATE TABLE [" + worksheetCategory +"] (SKU VARCHAR, FileName VARCHAR);"; cmd.ExecuteNonQuery(); foreach (string f in files) { string shortProductName = f.Substring(f.LastIndexOf("\") + 1); shortProductName = shortProductName.Substring(0, shortProductName.IndexOf("_")); cmd.CommandText ="INSERT INTO [" + worksheetCategory +"](SKU, FileName) VALUES(" + shortProductName +"," + f +");"; cmd.ExecuteNonQuery(); } conn.Close(); } |
可以将ADO.NET与OLEDB Excel连接字符串一起使用。
不过,这是非常基本的阅读和写作。
在上一个项目中,我使用了OpenXML 2.5,它是免费的,您可以从Microsoft下载它。OpenXML将为您提供对Excel的完全控制。然而,有一个学习曲线。
另外,您不想使用COM互操作。它不是并发导出的最佳选择,而且总是因为资源分配问题而出错。
我不知道您是否考虑第三方,因为它是由Microsoft实现的,但是开放式XML SDK for Office将允许您在没有在计算机上安装Excel的情况下读取和写入XLSX文件。
只需使用nuget package documentformat.openxml将其添加到项目中,不需要"安装"任何内容,只需确保在部署中包含所需的dll文件即可。