我很困惑,所有的方式都是读取/写入/创建excel文件。 VSTO,OLEDB等,但它们都似乎要求必须安装办公室。
以下是我的情况:我需要开发一个应用程序,它将excel文件作为输入,进行一些计算并创建一个新的excel文件,它基本上是对第一个excel文件的修改。所有这些都限制了运行它的机器可能没有安装办公室。 (不要问为什么......)
我需要支持所有 excel格式。唯一的优点是格式电子表格本身非常简单。只是一堆列和价值观,没什么特别的。遗憾的是,由于最终用户可能甚至不知道CSV文件是什么,因此没有CSV。
答案 0 :(得分:47)
以HTML表格格式编写excel:
<html>
<body>
<table>
<tr>
<td style="background-color:#acc3ff">Cell1</td>
<td style="font-weight:bold">Cell2</td>
</tr>
</table>
</body>
</html>
并为您的文件提供xls扩展名。 Excel会自动转换它
答案 1 :(得分:8)
如果没有安装Office,您将需要一些旨在了解Excel二进制文件格式的内容(除非您只想打开Office 2007 .xlsx文件)。
我找到的最好的(我使用的)是SpreadsheetGear,它除了是.NET原生之外,还比COM / OLE解决方案(我用过的)更快更稳定过去)
答案 2 :(得分:6)
读取和写入csv文件。 Excel读取它们就好了,它们更容易使用。如果您需要处理.xls文件,请尝试支持OpenOffice和Excel。 OpenOffice可以读写excel文件。
答案 3 :(得分:2)
您是否考虑过使用Open XML SDK的方式数字和数字?您可以保留样式并根据自己的喜好进行调整。您可以在实际文件中执行的任何操作都可以以编程方式实现。 SDK附带了一个名为Document Reflector的工具,它显示了底层的XML,甚至显示了可用于生成它们的LINQ语句。这是玩弄它的关键,看看如何进行更改,然后在代码中重新创建。
唯一需要注意的是,这适用于基于XML的新格式(* .xlsx)而不是旧版本。有一点点学习曲线,但更多的材料正在博客和其他网站上发挥作用。
答案 4 :(得分:1)
Excel XLSX文件“只是”XML文件 - 更确切地说是包含多个XML文件的ZIP文件。只需将Excel文件Test.xslx
重命名为Test.zip
,然后使用您的favourit ZIP程序将其打开即可。 XML模式是afaik,标准化和可用的。但我认为仅使用原始XML处理工具和框架来操纵它们可能并不容易。
答案 5 :(得分:1)
如果费用不是问题,我建议查看Aspose的Excel产品。我使用他们的Word产品,我很满意。
答案 6 :(得分:0)
Excel文件采用专有格式,因此(afaik)如果没有可用的办公室互操作,您将无法执行此操作。存在一些第三方工具(可能会从MS获得格式许可?)但我自己并没有用它来评论它们的用途。
我认为你无法控制基本文件格式,即简单的CSV或XML格式是不可能的?
答案 7 :(得分:0)
我曾经使用一个名为CarlosAg的非常好的库,它使用Excel XML格式。它很棒(Excel识别格式),速度也非常快。请查看here。
哦,作为旁注,我们过去常常使用它,原因与您需要的原因相同。生成这些文件的服务器无法安装Excel。
答案 8 :(得分:0)
如果您无法按照@RHicke的建议使用CSV文件,并假设您正在使用网络应用,那么桌面应用将保证根据要求安装XL。
我会说,将您的处理应用程序创建为 webservice ,并构建一个 XL插件,它将直接从XL与您的Web服务进行交互。
答案 9 :(得分:0)
对于XLSX文件,请查看使用http://www.codeplex.com/ExcelPackage。否则,一些付费的第三方解决方案就在那里,就像大卫建议的那样。
答案 10 :(得分:0)
我可以理解在服务器计算机上没有安装办公室的要求。 有许多像aspose这样的库,但有些库需要许可证。 如果您的目标是MS Excel格式,那么可以使用Microsoft的本机互操作性库ACE OLEDB数据提供程序,您可以将其安装在计算机上并以编程方式开始阅读和编写。您需要根据需要定义连接字符串和命令。 (Ref: This article @yoursandmyideas)讨论了如何使用此库以及设置和故障排除信息。