2009-12-31 75 views
17

我很好奇现在有多少人在封闭和商业环境中使用Open XML(OOXML)(纯粹或通过SDK)。我很清楚“公共网络”(MSDN,OpenXMLDeveloper.org等)上发生了什么,但是我想知道SO人们的经验,无论好坏。Open XML吸引了多少?

大多数人是否选择退出VBA和VSTO而赞成直接使用OOXML格式?您从OOXML获得的好处是您没有从对象模型中获得。我很想了解更多关于你为什么使用它的原因或你为什么不使用它,等等。

我只是想从OOXML社区获得一种感觉,作为处理文档自动化或其他用途。我没有找到社区论坛(这个或其他人)对问题和用户非常活跃(查看这篇文章的标签问题的数量),所以我想知道我是否是少数几个谁之一正在广泛使用OOXML。

回答

9

既然Microsoft Office 2007(特别是Excel)支持Open XML,我发现它比Office Automation更容易使用。造成这种情况的几个主要原因是:

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

鉴于Office XP/2003用户可以使用兼容包打开Office 2007文件,我没有看到任何理由继续使用旧的自动化或“OfficeML”方法。这是一个学习曲线,但它可以说是目前最好的选择 - 它是免费的,它是可靠的,最重要的是它是现在Office 2007使用的本地格式格式,您不需要任何愚蠢的技巧就可以实现它(像XL2003一样将XLS内容类型附加到HTML,并让XL2007抱怨扩展名不正确)。

我不会说这是对VBA/VSTO的全面替代 - 关于这些的一点是,它们通常是解决方案的一部分,其中需求是与Office环境本身集成。使用OOXML通常会要求你编写一个完整的应用程序。但对于简单的导入/导出来说,这可能是过去90%以上的自动化已被使用,当然,OOXML是一条可行的路线。

+0

谢谢阿龙,很有洞察力。 – 2010-01-03 22:06:46

+2

Open XML的一个问题是,如果您仍然有许多用户使用Office 2003,并且您正在从头开始创建文档(即不使用Word或Excel)。我遇到了一些使用Open XML SDK创建文件的问题,并且在Office 2007中它可以正常打开,但是当有人试图使用兼容包在Office 2003中打开它时,它会崩溃。只需一个简单的参考即可在发布文档之前对两个版本的Office进行测试。 – 2010-01-04 11:45:59

+0

@Adam:有趣的是,我从来没有收到有关这方面的错误报告,但我从现在开始肯定会对它进行测试。 – Aaronaught 2010-01-04 15:33:05

1

我已经在SharePoint中使用Open XML SDK进行文档生成,使用PPTX生成自定义演示文稿(从XSLX获取数据)以及从多个文档段“构建”复合文档。

格式和SDK都很棒。无需担心ASP.NET或SharePoint场景中的服务器,并且速度很快。我没有发现太多的SDK或“暴力”xml无法完成目标的场景。一个例子是密码保护和DRM文件,但这些都是更多的案例。我同意aaronaught这不是一个独家解决方案,但SharePoint,VSTO和其他工具是文档生成解决方案的工具。

+0

这很有趣,PPTX一代。例如,这是否会是一种情景?就像销售人员需要特定客户的自定义套牌一样,后端使用SDK来查询客户和数据以便插入预先构建的模板中? – 2010-01-11 01:09:48

+0

Okatu。我几乎完成了这一点。我们的客户对结果非常满意。我还使用Excel和Word来导入和导出系统中的信息。 – Andrew 2010-02-06 13:27:32

+0

Okatu,我们遇到了与您描述的Word非常相似的情况(从SharePoint和其他外部系统提取数据)以生成DOCX文档。 PPTX非常相似 - 根据Excel文件中的数据创建自定义幻灯片。 – 2010-02-16 13:05:47

1

我做的情景下,一个国家的销售业绩在PPT甲板交付使用Open XML

+0

有趣。您是使用SDK还是直接编写?你是否在做更复杂的BI报告,如图表和图表? – 2010-01-19 08:51:03

+0

SDK 2.0 Beta 但是感觉这是一个痛苦的使用。我使用图表使用SoftwareFx图表包创建的反射器。这些数据销售的数据是跟踪公司如何在40个不同市场上交付的数据,并且我们考察了不同细分市场的价值/数量/百分比/市场渗透/增长/增长份额,所以是商业智能,但是使用Linq for SQL – salgo60 2010-01-19 13:21:40

+0

是为了决定和激励停止对不同市场上的产品做出的决定 – salgo60 2010-01-19 23:30:11

3

我看着这个技术有很多,我在VBA程序,但它是这样的方式复杂,我的需要。关于如何使用它,我的电子学习会受益于一些很棒的事情,比如Linq和XML,但从VBA转换到底层格式的标准太高了,我没有那种时间和金钱的奢侈它需要投资学习VS.Net和Open Office XML格式。

但我认为它确实有帮助的一件事是为LMS元标记PowerPoint内容。

+1

是啊,我很怀疑。对.NET和其他新技术的改变是VBA的一大飞跃。 – 2010-02-03 22:33:39

4

Simple OOXML这样的图书馆也可以极大地帮助学习曲线。

2

我们使用Open XML SDK导出到Excel。我不得不说,它很慢,所以我们必须自己做一些缓存(对于共享字符串)。该库只是Open XML格式的对象表示。有时它可能是好事,有时不是。特别是当你必须非常了解Open XML标准时,因为SDK不会为你处理任何事情。您必须知道格式带来的所有限制,您必须知道哪些元素不能在xlsx或docx中省略,等等。它允许您创建不一致的excel电子表格或不合适的文档文档。那么,它至少是免费的:)总比没有好。

1

我用它来解析pptx文件,在形状中寻找特殊注释。这些评论是指向其他资源(uri最常见的PDF文件等)的链接。然后我使用deepzoom软件渲染pptx,然后将uri渲染到形状中。有趣,但很慢。用它来帮助研究和一种“新颖”的方式来看海报。但这不是LOB。

1

我们最近从Word Interop迁移到了Open XML。

我们的应用程序用于创建Word和pdf格式的发票。当使用Interop时,体面大小的发票需要5-10分钟才能生成。 现在,使用OpenXML和SSRS的时间已经缩短到大约30秒。 Word的唯一问题领域是某些功能无法从Word 2010向后兼容2007,并且需要一些时间才能修复并启动并运行。像创建目录,合并文件等

除此之外,我认为Linq,MSDN和Eric White's Blog足以让你朝着正确的方向前进。