我已经构建了一个解决方案(请参阅我的其他问题),该解决方案运行 SQL 查询、按发票订购并为每张发票创建一个 Excel 电子表格。我的问题是我使用它作为连接:
Excel_OLE_Con.ConnectionString = connstring;
Excel_OLE_Con.Open();
Excel_OLE_Cmd.Connection = Excel_OLE_Con;
Excel_OLE_Cmd.CommandText = "Create table " + SheetName + " (" + TableColumns + ")";
Excel_OLE_Cmd.ExecuteNonQuery();
我还没有找到使用 Excel_OLE_con 来做我想做的事情的方法,所以我正在使用它Microsoft.Office.Interop.Excel
。
我试过有:
Excel_OLE_Cmd.Close();
最后,然后有这个:
Excel.Application x1Appl = new Excel.Application();
Excel.Workbook x1WorkBook = x1Appl.Workbooks.Open(FolderPath + ExcelFileName + ".XLSX");
Excel._Worksheet x1WorkSheet = x1WorkBook.Sheets[1];
x1WorkSheet.Range["F2", "F2000"].NumberFormat = "#,###.00 €";
x1Appl.Save();
然后再次打开连接并让写入它的循环发生,因为我读过我应该在将数据输入到excel之前对其进行格式化。这没有用。
我尝试在关闭连接后将它放在循环的末尾(因为 Excel 应用程序打开了一个新的“连接”。
但我现在收到此错误:
System.Runtime.InteropServices.COMException (0x800A03EC):来自 HRESULT 的异常:0x800A03EC at Microsoft.Office.Interop.Excel.ApplicationClass.Save(Object Filename) at ST_6704c764a25b4ffa92f62385be46f235)。
关于如何解决它的任何想法?
有什么不同的设置格式的方法吗?我认为这会有所帮助,因为我还需要向该工作表中的某些单元格添加公式。
我不确定为什么您的数字格式不起作用,但这里有一些对我有用的东西:
Range UnitCostCells = workSheet.get_Range("G1", "G1");
UnitCostCells.EntireColumn.NumberFormat = "#,##0.0000";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句