我发现互操作API太混乱了,这是非常不可信的
很多方法都没有评论,似乎做得很差
有没有其他人经历过同样的事情,如果有的话,你用什么库来控制Exel来自C#?
答案 0 :(得分:4)
VSTO / COM Interop技术的明显实际问题是在工作表和托管代码之间转换时产生的开销。 (如果您在没有VSTO帮助的情况下尝试与Excel交谈,请停止这样做并避免一些巨大的麻烦)。我认为VSTO在托管环境中提供了一个与Excel对象模型密切相似的功能 - 当然我不需要花太多时间来了解更多关于.NET Interop的内容。
对于运行时间较长的自动化活动而言,开销并不是一个问题,VBA自动化的类似问题也适用:尽可能减少跨接口的调用以获得最佳性能。
对于更小,更快的工作表函数类型的工作(我们可能写一个XLL的事情,比方说)开销可能是一个杀手。 ExcelDNA似乎是通过XLL模型提供托管代码的绝佳方式 - 价格合适。
答案 1 :(得分:0)
SpreadsheetGear for .NET是适用于.NET的Excel兼容电子表格组件。它将不使您能够控制Excel,但它将为您提供适用于ASP.NET / WinForms / etc的Excel兼容电子表格引擎...可以创建,读取,修改,查看,编辑,格式化从.NET计算,打印和编写Excel工作簿和图表。由于SpreadsheetGear是100%安全的托管代码,因此没有像Excel一样的每次调用性能损失。
SpreadsheetGear API与Excel的API非常相似 - 除了许多API的类型更强,因此它们更易于使用C#而不是Excel的API。
您可以看到功能列表here,VB和C#here的实时ASP.NET报告/图表/仪表板/计算示例,并下载免费试用here。
免责声明:我拥有SpreadsheetGear LLC