Open XML占了多少?

Tod*_*ain 17 openxml

我很好奇现在有多少人在封闭和商业环境中使用Open XML(OOXML)(纯粹的或通过SDK).我很清楚"公共网络"(MSDN,OpenXMLDeveloper.org等)上发生了什么,但我想知道SO人们对它的体验,包括好的和坏的.

大多数人选择退出VBA和VSTO而不是直接使用OOXML格式吗?您从OOXML获得的好处是您从对象模型中获得的好处.我想更多地了解你为什么使用它或为什么不使用它,你用它做什么等等.

我只是试图从社区中获得OOXML作为文档自动化或其他用途的方法.我没有找到社区论坛(这一个或其他人)对问题和用户非常活跃(通过这篇文章的标签查看问题的数量),所以我想知道我是否是极少数人之一正在广泛使用OOXML.

Aar*_*ght 9

既然Microsoft Office 2007(尤其是Excel)支持Open XML,我发现它比Office Automation更容易使用.其中一个主要原因是:

  • 更好的性能;
  • 没有flakey IPC问题(即有人在Save As对话框中打开Excel,崩溃);
  • 不依赖于Office本身或任何外部组件;
  • 在C#中编写Linq扩展和查询相当容易;
  • 可以在服务器环境中使用,没有任何问题或风险.

鉴于Office XP/2003用户可以使用兼容包打开Office 2007文件,我认为没有任何理由继续使用旧的自动化或"OfficeML"方法.这是一个学习曲线,但它可以说是今天最好的选择 - 它是免费的,它是可靠的,而且最重要的是它是今天Office 2007使用的原生格式,你不需要任何愚蠢的技巧来使它工作(比如像我们为XL2003所做的那样将XLS内容类型附加到HTML,并让XL2007抱怨不正确的扩展名.

我不会说它是VBA/VSTO的彻底替代品 - 关于这些的问题是它们通常是需要与Office环境本身集成的解决方案的一部分.使用OOXML通常需要您围绕它编写整个应用程序.但是对于简单的导入/导出,这可能是过去90%的自动化使用,当然,OOXML是可行的方法.

  • Open XML的一个问题是,如果您仍然有很多用户使用Office 2003,并且您是从头开始创建文档(即不使用Word或Excel).我遇到了一些问题,我将使用Open XML SDK创建文件,它在Office 2007中可以正常运行,但是当有人尝试使用兼容包在Office 2003中打开它时,它会崩溃.只是一个FYI,在发布文档之前测试两个版本的Office. (2认同)