使用.NET修改Excel电子表格

时间:2008-11-15 13:45:04

标签: .net excel

问题在于:

我必须使用.NET修改现有的Excel电子表格。电子表格非常复杂,我只需在某些预定义区域添加数据。

我正在调查我的选项,Excel Automation / InterOp是不可能的,因为我正在实现一个ASP.NET网站,并且Excel可能没有安装在服务器上。从我在网上找到的,InterOp在性能方面也是一个非常昂贵的解决方案。

由于原始电子表格的复杂性,也排除了创建CSV文件。

目前我倾向于使用ADO.NET OleDb解决方案,但我发现很少提到(Google和Stackoverflow.com),所以我有点担心:OldDb for Excel的问题是什么? 到目前为止,我在MSDN上找到的唯一缺点就是我无法使用公式创建单元格,但在我的情况下这确实不是问题。

我也考虑过SSIS,但这只是基于我的假设,即在生成电子表格时可以使用现有的Excel文件。我不知道是否可能。

然后是OpenXml。与OldDb相比,它似乎过于复杂,而且我还不确定哪些旧的Excel版本需要支持。

我错过了什么吗?有更多选择吗?

8 个答案:

答案 0 :(得分:3)

查看MyXls .NET解决方案,以便读取和编写二进制XLS文件。

答案 1 :(得分:1)

我已经使用Aspose.Cells来取得这样的成功。文档可能有点迟钝,但产品似乎有效。它不需要您在服务器上安装Excel,它可以与最新版本的Excel(以及以前的版本)一起使用。

答案 2 :(得分:1)

使用Excel作为ISAM数据库使用任何驱动程序(ODBC,OLEDB等)的问题是该列的数据类型基于列中的前8行 - 这是纯粹的邪恶;例如:如果一个列类似于一个部分#并且前八个部分碰巧只是数字,那么对于那个部分#不是数字的那个列中的任何单元格,你得到NULL。 (110000 vs 111000-1或111000A)。无论您如何格式化Excel中的列(即使将列设置为文本),这都是无关紧要的。

我会尝试找一个关于此的文档并进行更新。 这是一个:

http://support.microsoft.com/kb/194124

http://msdn.microsoft.com/en-us/library/bb177610.aspx

答案 3 :(得分:1)

在这种情况下,我通常不赞成不弄乱复杂的电子表格,而是设置一个单独的数据文件,我将链接复杂电子表格中的数据单元格。这比从外部更改复杂的电子表格更清晰,更安全。

如果这不比你目前面临的替代方案容易,那会让我感到惊讶。但后来我还没有看到你的电子表格。

答案 4 :(得分:0)

你的解决方案仍然很少。 1)excel文件的第三方组件。 (我认为这是最痛苦和最可靠的解决方案) 2)使用html-table。


1)只需看看互联网:) 2)excel在html-tables中工作得很好。 如果你生成这个html:

<html><body>
<table>
<tr><td><b>Column A</b></td><td><b>Column B</b></td></tr>
<tr><td><font color="red">-154</b></td><td><font size="5">hello world</font></td></tr>
</table>
</body></html>

excel会在您编写它时将其显示为工作表。 我认为,这是最普遍的方式,如何在互联网环境中创建“丰富”的excel工作表,而无需在服务器上实现excel。

答案 5 :(得分:0)

查看Excel Web Access,它是MOSS中Excel Services的一部分,是Excel的服务器端版本,可让您通过Web浏览器计算和显示Excel信息。 MOSS overview page描述了可以在服务器上提供Excel功能的sharepoint框架。您可以使用VSTO API以编程方式访问电子表格。

答案 6 :(得分:0)

不确定这是否正是您所需要的,但当然可以是:4 Editing In Excel Tutorials(在.NET#5-8下)

答案 7 :(得分:0)

您可能需要查看http://www.gemboxsoftware.com/GBSpreadsheetFree.htm

他们有一个包含所有功能的免费版本,但每张工作表限制为150行,每个工作簿限5张,如果符合您的需要,否则付费版本的开发人员许可证的起价为425美元。

StackOverflow: Create Excel (.XLS and .XLSX) file from C#还有其他可能适用于您的问题的答案。