使用 NPOI 在打开的 Excel 应用程序上写入

Writing on open Excel application using NPOI

伙计们,

环境

问题

如何使用 NPOI (https://npoi.codeplex.com/) 在可见的 Excel sheet 上写入值并制作图表 (https://npoi.codeplex.com/)。

为什么我想要那个?

我正在开发一个应用程序来测量设备中的温度。为了把实验数据放在一个地方,我想在Excelsheet上记录数据,在sheet上做图表。此外,我想保持 Excel sheet 可见并实时检查图表更新。

例如,您也可以使用 NationalInstruments 的 MeasurementStudio 在 Windows Form 应用程序上制作图表,但考虑到 Excel 图表的灵活性(大小和 xy 范围可变,易于使用的用户界面,等等...),我想坚持 Excel。

您可以通过 ExcelApp.visible = true; 使用 Microsoft.Office.Interop.Excel 轻松完成此操作。但是,此模块要求用户释放生成的每个 COM 对象。否则,对象会保留下来并耗尽内存。这就是我更喜欢使用NPOI的原因。

我怎样才能做到这一点?任何答案将不胜感激。

您不能使用 NPOI 执行此操作。 NPOI 从 序列化 Excel 文件 中读取和写入数据。当 Excel 打开这些文件时,您无法访问它们,即使可以,Excel 也不会重新读取这些文件,因此您的修改不会显示。

您描述的问题归结为 "I want to interact with a running Excel instance without using Excel interop"。那是行不通的。