当程序写入数据到excel时等待打开excel
我一直在做应用程序,从串口读取数据,然后写入Excel(连续)。
如果在写入串行数据之后打开当前的excel文件,或者写入串行数据,则打开当前文件是没有问题的。
问题是在串行接收数据之后,程序正在写入数据到excel,同时我尝试打开当前文件或从程序外(手动)打开另一个excel应用程序。
错误消息:错误:文件扩展名不正确(来自HRESULT的exception:0x800401E6(MK_E_INVALIDEXTENSION)行:mscorlib
接收到的串口数据>>打开excel文件>>写入excel >>另存为>>>串口数据接收>>打开excel文件>>写入excel >>另存为>>>数据写入excel后,没有closures工作簿,我只是把它看不见了。
这是我的示例代码
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);
解决办法是什么? 你能提供一些示例代码吗?
编辑:主@Vasi,我这样做,并得到错误。
我记得以前我写过excel,closures工作簿和excel应用程序, 但是以前的错误只是在closures工作簿的时候,而excel进程卡在RAM中,进程在任务pipe理器中并没有消失。
所以,现在我尽量不要closuresexcel应用程序和工作簿,并且希望将数据写入excel时程序的处理速度会更快。 而作为你的build议,我试图closuresExcel的应用程序,工作簿和工作表,如在这个网站http://goo.gl/SzwhCF
但是任务pipe理器中的进程在windows窗体closures之后并不会消失,并且错误消息是对象引用没有被设置为对象的一个实例。 这是我的示例代码http://postimg.org/image/w6614hbq3/
我的代码有问题吗?
谢谢
由于OpenXML标准一旦您在Excel应用程序中打开文件,就不可能从其他应用程序/编码中打开。
优先使用逗号(或分号)分隔(我们可以很容易地在excel中导入)文本文件或数据库。