在C#中更新现有的.XLSX或.CSV文件 – 编辑电子表格单元而不必打开Excel应用程序

有一些答案如何使用c# 更新 Excel电子表格。 然而,所有这些答案都是几年前的,而且大多数都需要在excel中打开。 我正在寻找更近的解决scheme; 在那里我做了编辑, 而不使用Excel

我正在做的是更新现有的.xlsx文件, 并将该文件保存到内存中,然后通过电子邮件发送该stream。

如果你有如何将文件保存到内存的指针,这将是有帮助的。 但我正在寻找的真正解决scheme是使用c#更新现有的.xlsx文件,而不必打开excel。 我不需要添加任何工作簿,我只需要更新单元格。

这不是一个具体的问题,但是在这里可能有几个要点。

  1. 更新XLSX文件:因为这不是一个简单的文件,你不能只打开使用文件打开操作和编辑单个文件。 XLSX是一个复杂的文档,以XML或二进制或其他格式保存。 所以你需要一个API。 您可以在Windows或其他API上使用内置的Excel自动化对象,以实现各种平台和语言。
  2. 我是否需要打开文件并启动Excel? 不,你不需要。 但是,如果您使用Excel.Application或其他API,则启动Excel程序。 无论是否可见,都可以控制,但Excel.exe是在使用Excel自动化对象时完成工作的软件。 像closedXml或其他Excel库的Otehr APIS可能在XML级别上工作,所以它们实际上并不打开excel.exe并可以完成工作。
  3. 保存在内存中,直接通过电子邮件发送 :这是一个艰难的。 我不认为这是可能的。 我提到过的大多数库都可以在一个或多个基础复合文档部分上工作,所以再一次,因为它不是一个简单的文件,所以不能在内存中编辑和附加。