使用未安装Microsoft Office的C#着色Excel工作表单元格?

我写了一个程序来做到这一点,但得到了一个例外说

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). 

如何解决这个exception,我怎样才能使用C#为Excel工作表单元格着色?

以下是代码:

 using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; using System.Windows; using System.Drawing; using Microsoft.Office.Interop.Excel; using System; namespace Project32 { public class Class1 { static void Main() { Application excel = new Application(); Workbook wb = excel.Workbooks.Open(@"C:\Users\mvmurthy\Downloads\IDBDeviceReport.rdlc"); Worksheet ws = wb.Worksheets[1]; ws.Cells[1, 1].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); } } } 

当您使用Microsoft.Office.Interop命名空间通过COM“自动化”Excel时,必须在计算机上安装相应的Microsoft Office产品。

否则,您将不得不切换到某种第三方库,使您能够直接读取/写入文件而不依赖于Microsoft Office软件。

可能的库需要考虑:

  • EPPlus
  • OpenXML的
  • ClosedXML