Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有安装office的情况下以编程方式创建、读取和编写excel?_C#_Excel - Fatal编程技术网

C# 如何在没有安装office的情况下以编程方式创建、读取和编写excel?

C# 如何在没有安装office的情况下以编程方式创建、读取和编写excel?,c#,excel,C#,Excel,我对读/写/创建excel文件的无数种方法感到非常困惑。VSTO、OLEDB等,但它们似乎都要求必须安装office 以下是我的情况:我需要开发一个应用程序,将一个excel文件作为输入,做一些计算,并创建一个新的excel文件,基本上是第一个excel文件的修改。所有这些都有一个约束条件,即运行此操作的计算机可能未安装office。(不要问为什么…) 我需要支持所有excel格式。唯一可取之处是电子表格本身的格式非常简单。只是一堆列和值,没什么特别的。不幸的是,没有CSV作为最终用户可能甚至不

我对读/写/创建excel文件的无数种方法感到非常困惑。VSTO、OLEDB等,但它们似乎都要求必须安装office

以下是我的情况:我需要开发一个应用程序,将一个excel文件作为输入,做一些计算,并创建一个新的excel文件,基本上是第一个excel文件的修改。所有这些都有一个约束条件,即运行此操作的计算机可能未安装office。(不要问为什么…)


我需要支持所有excel格式。唯一可取之处是电子表格本身的格式非常简单。只是一堆列和值,没什么特别的。不幸的是,没有CSV作为最终用户可能甚至不知道什么是CSV文件。

而是读取和写入CSV文件。Excel可以很好地读取它们,而且它们更易于使用。如果需要处理.xls文件,请尝试支持OpenOffice和Excel。OpenOffice可以读取和写入excel文件。

如果未安装Office,您将需要能够理解excel二进制文件格式的软件(除非您只想打开Office 2007.xlsx文件)


我发现(我使用的)最好的解决方案是,除了.NET本机之外,它比COM/OLE解决方案(我在过去使用过)更快、更稳定。

Excel文件采用专有格式,因此(afaik)如果没有office互操作,您将无法做到这一点。一些第三方工具已经存在(大概是从MS许可了格式?),但我自己并没有用它们来评论它们的有用性


我假设您无法控制基本文件格式,即不可能使用简单的CSV或XML格式?

以HTML表格格式编写excel:

<html>
<body>
  <table>
    <tr>
    <td style="background-color:#acc3ff">Cell1</td>
    <td style="font-weight:bold">Cell2</td>
    </tr>
  </table>
</body>
</html>

第1单元
细胞2

并为您的文件提供xls扩展名。Excel将自动转换它

我曾经使用一个非常好的库,名为,它使用Excel XML格式。它很棒(Excel可以识别格式),而且速度惊人。看看吧


哦,作为旁注,我们使用它的原因和你需要它的原因是一样的。生成这些文件的服务器无法安装Excel。

如果您无法按照的建议使用CSV文件,并且假设您正在使用web应用程序,因为桌面应用程序将保证按照要求安装XL


我会说,创建你的处理应用程序作为<强> WebService < /强>,并构建一个<强> XL Advin ,它将直接与你的WebService从XL.

< P >你考虑过多少个BZILLION和一个:使用?您可以保留样式并根据自己的喜好进行调整。在实际文件中可以执行的任何操作都可以通过编程实现。SDK附带了一个名为DocumentReflector的工具,它显示了底层XML,甚至显示了可用于生成它们的LINQ语句。这是摆弄它的关键,看看如何进行更改,然后在代码中重新创建


唯一需要注意的是,这将适用于新的基于XML的格式(*.xlsx),而不是旧版本。有一个轻微的学习曲线,但更多的材料正在博客和其他网站上流行。

Excel XLSX文件“只是”XML文件-更准确地说是包含多个XML文件的ZIP文件。只需将Excel文件
Test.xslx
重命名为
Test.zip
,然后用您的Favorit zip程序打开它。XML模式是安全的、标准化的和可用的。但是我认为仅仅使用原始的XML处理工具和框架来操作它们可能不是那么容易。

对于XLSX文件,请查看使用。另外,还有一些付费的第三方解决方案,如David建议的解决方案。

如果成本不是问题,我建议查看Aspose的Excel产品。我用他们的产品这个词,我很满意


我能理解不在服务器上安装office的要求。 有许多像aspose这样的库可用,但其中一些需要许可证。
如果您的目标是MS Excel格式,则可以使用Microsoft提供的本机互操作性库ACE OLEDB data provider,您可以将其安装到计算机上,并以编程方式开始读写。您需要根据需要定义连接字符串和命令。()介绍如何使用此库以及安装和疑难解答信息。

您需要支持哪些版本?这取决于您需要MS Excel的哪些功能。你需要什么花哨的功能吗?你需要多大程度的容忍“失去的功能”。你需要维护公式、数据透视表、图表等吗?或者仅仅是这些文件中的数据?我想这以前有人问过,现在找不到。看看右边的“相关”链接,尤其是你在开玩笑。我已经用过好几次了,简单,效果很好。但是对于web应用程序,只需将内容类型/mime类型设置为excel(我记不清确切的mime类型),并且根据您的excel版本,它通常也会选择格式。粗体表格单元格?Excel会继续下去。。背景色?我一直用它从网络应用导出xls文件。这是我这周看到的最酷的事情。我花了几个小时试图找到一种从PHPA导出XLS的好方法。在尝试了一些免费的替代方案之后,我的团队决定也使用Aspose.Cells。它的使用非常直观,代码也很容易维护。