C# 程序将数据写入excel时等待打开excel
我一直在做一个应用程序,从串口读取数据,然后将其写入excel(连续) 如果在写入串行数据后打开当前excel文件,或者在写入串行数据后打开当前文件,则没有问题 问题是在收到串行数据后,程序正在将数据写入excel,同时我尝试打开当前文件或从程序外(手动)打开另一个excel应用程序 错误消息:错误:文件扩展名不正确(来自 HRESULT:0x800401E6(MK_E_INVALIDEXTENSION)行:mscorlib 收到串行数据>>打开excel文件>>将数据写入excel>>另存为>>>收到串行数据>>打开excel文件>>将数据写入excel>>另存为>>> 将数据写入excel后,我没有关闭工作簿,只是使其不可见 这是我的示例代码C# 程序将数据写入excel时等待打开excel,c#,excel,com,interop,C#,Excel,Com,Interop,我一直在做一个应用程序,从串口读取数据,然后将其写入excel(连续) 如果在写入串行数据后打开当前excel文件,或者在写入串行数据后打开当前文件,则没有问题 问题是在收到串行数据后,程序正在将数据写入excel,同时我尝试打开当前文件或从程序外(手动)打开另一个excel应用程序 错误消息:错误:文件扩展名不正确(来自 HRESULT:0x800401E6(MK_E_INVALIDEXTENSION)行:mscorlib 收到串行数据>>打开excel文件>>将数据写入excel>>另存为>
Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
.....
oXL = new Excel.Application();
oWB = oXL.Workbooks.Open("C:\\Folder\\SerialData" + filenumber + ".xlsx", 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
oSheet = (Excel._Worksheet)oWB.Worksheets["Sheet" + sheetnumber];
.....
oWB.SaveAs("C:\\Folder\\SerialData" + filenumber + ".xlsx",Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
解决方案是什么?你能给我一些示例代码吗
编辑:master@Vasi,我这么做了,结果出错了
我记得以前我是这样做的,在写入excel后,关闭工作簿和excel应用程序。但过去的错误是,当关闭工作簿时,excel进程卡在RAM中,进程不会在任务管理器中消失
所以,现在我尝试不关闭excel应用程序和工作簿,我希望在将数据写入excel时,程序的过程会更快。根据您的建议,我尝试关闭本网站中类似的excel应用程序、工作簿和工作表
但在windows窗体关闭后,任务管理器keep中的进程并没有消失,错误消息是对象引用未设置为对象的实例。这是我的示例代码
我的代码有问题吗
谢谢由于OpenXML标准,一旦在Excel应用程序中打开文件,就不可能从其他应用程序/编码中打开
喜欢逗号(或分号)分隔的(我们可以轻松导入excel)文本文件或数据库。这是什么意思master?我不明白,我的程序有什么解决方案吗?我们无法处理并发读写过程(您提到过,您没有关闭工作簿)。保存文档后,请使用oWB.Close()另外,您无法打开excel文件。