DevExpress Document Server – 在没有 Microsoft Office 自动化的前提下自动化 Office






4.89/5 (7投票s)
DevExpress Document Server – 在没有 Microsoft Office 自动化的前提下自动化 Office
DevExpress Document Server – 几年前(很久很久以前,在一个遥远的星系),我不得不接手一个项目,这个项目是我之前公司的同事留下的。不幸的是,她是在项目实施到一半的时候离开的。应用程序已经开发并安装,但有很多变更请求,我必须将这些变更请求开发成可行的解决方案。
最大的麻烦之一是,该应用程序执行了一些非常怪异的Office Word操作。以至于当公司升级到新版本的Office时,许多已安装的应用程序功能都损坏了。然而最近,我们需要为客户提供将数据导出到Excel的功能。唯一的问题是客户不会安装Microsoft Office。
我们显然不能使用Microsoft Office自动化,而DevExpress Document Server是解决这类问题的完美方案。
DevExpress Document Server – 电子表格
DevExpress Document Server是一个.Net库,您可以将其添加到C#、VB.Net或ASP.Net应用程序中,以自动化Excel和Word,而无需使用Microsoft Office自动化。添加此功能非常简单,我将在下面向您展示如何操作。安装DevExpress后,启动Visual Studio。创建一个控制台应用程序并添加以下引用。
- DevExpress.Data
- DevExpress.Office.Core
- DevExpress.Spreadsheet.Core
- DevExpress.Docs
将以下命名空间添加到您的应用程序。
导入上述命名空间将使Workbook类在您的应用程序中可用。
任何熟悉Excel的人都知道一个工作簿可以包含多个工作表,并且一个工作表可以包含多个单元格。
您可以通过名称或索引引用工作表。对于本例,我们只使用其索引。
要将特定单元格设置为某个值,只需通过其位置引用它即可。因此,如果我们要设置单元格A1的文本,上面的代码将为您完成此操作。
您添加的最后两行将保存电子表格并启动Excel。保存您的应用程序并运行您的控制台应用程序。
Excel以其全部荣耀启动,您将看到您设置为单元格A1的文本显示在您的电子表格中。您还可以指定其他数据类型,例如日期、布尔值和数值。您还可以在单元格中设置宽度、对齐方式、边框样式和颜色、背景颜色和字体。
最后,前往您在代码中为电子表格设置的C:\Temp输出位置。在那里您将看到生成的电子表格。
DevExpress Document Server – 富文档转PDF
我上面提到的项目要求之一是将文档创建为PDF格式。这是为了这些文档不容易被编辑。回想我们当时为了创建PDF而不得不如何“黑”代码,我现在对DevExpress Document Server使这个过程变得如此简单感到惊讶。要做到这一点,请按照以下步骤操作。
首先将要转换的Word文档添加到您的控制台应用程序。确保将“复制到输出目录”属性设置为“始终复制”。接下来我们需要将以下引用添加到控制台应用程序(如果您正在继续前面的示例,只需添加DevExpress.RichEdit.Core引用)。
- DevExpress.Docs
- DevExpress.RichEdit.Core
- DevExpress.Office.Core
- DevExpress.Data
为了能够处理富文档,添加必需的using语句DevExpress.XtraRichEdit。
顺便提一下,您会注意到在我的代码示例中,添加的using是浅灰色的。这是因为安装了DevExpress CodeRush,它正在向我指示冗余命名空间。DevExpress.XtraRichEdit命名空间是冗余的,因为它尚未在代码中的任何地方使用。
将鼠标悬停在冗余命名空间上,CodeRush将弹出一个信息对话框。我非常喜欢CodeRush,但请允许我不要跑题。
将上述代码添加到您的控制台应用程序中。代码是自解释的,但为了完整性,代码正在执行以下操作:添加DevExpress.XtraRichEdit命名空间公开了RichEditDocumentServer类。加载Word文档并创建一个流对象来创建一个名为“springcarnival.pdf”的文件。使用流对象将加载的Word文档导出为PDF。最后,运行Process.Start,它将使用关联的Adobe Reader应用程序启动文件。
您的Word文档完美地转换成PDF文件并在Adobe Reader中打开。这再简单不过了。
DevExpress Document Server – 压缩和存档生成
几年前,我不得不处理一个从MRP运行生成文档的应用程序。这些文档显然会非常大且数量众多。其中一个要求是压缩它们并适当处理这些文件。我当时真希望有DevExpress Document Server。让我们使用相同的控制台应用程序并添加以下引用。
- DevExpress.Docs
鉴于我们已经添加了上述引用,我们显然不需要再次添加它。
在我们开始使用压缩类之前,我们需要将DevExpress.Compression命名空间添加到我们的控制台应用程序中。您会注意到DevExpress.XtraRichEdit命名空间不再是灰色的。这是因为它在我们的代码中被引用了。
我有一个文件夹,里面有奋进号航天飞机发射到太空的图片。让我们用它来演示DevExpress Document Server的压缩功能。
通过上面的代码示例,我们可以看到DevExpress Document Server为我们公开了几种加密类型。对于本例,我将只使用PkZip。
代码的其余部分创建存档并为存档设置密码。创建存档后,将其保存到输出目录。
打开存档并单击文件时,会提示您输入密码。
由于文件已加密,如果您更改文件夹视图,甚至不会看到缩略图。
这展示了我们如何使用DevExpress Document Server在几分钟内轻松创建加密存档文件。
结合PDF文件创建和存档创建也非常容易。将我们之前创建的一些代码串联起来,我们就得到了一个很好的应用程序,它可以创建PDF文件并对其进行存档,包括加密。
DevExpress Document Server – 单位转换
DevExpress Document Server的另一个强大功能是单位转换。您有多少次不得不处理值转换,却没有标准的方法来做到这一点。要使用此功能,您需要添加DevExpress.UnitConversion命名空间。
这将公开单位转换类供您在代码中使用。
有几种单位类型可以转换。其中有一些有趣的类型。对于我们的示例,我们将使用温度。
DevExpress Document Server使这个过程变得非常简单。您可以简单地调用Units类的Temperature方法,并传递要转换的值,要转换的单位(摄氏度)和要转换的单位(华氏度)。实际上,一行代码就可以为您完成此操作。
DevExpress Document Server – 条形码生成
近年来非常流行的是QR码。说实话,您在名片或杂志上见过多少次?因此,能够为我们使用DevExpress Document Server创建的文档轻松生成一个是有意义的。
通过添加DevExpress.Barcodes命名空间来公开条形码类。
生成二维码所需的代码比我们之前看的例子稍长,但并不复杂。我们正在创建一个Barcode类型的新对象,并将其符号设置为QR Code。然后我们设置与QR Code相关的颜色和其他属性,然后将QR Code保存为png。
二维码已保存到我们代码中指定位置的png文件中。
我使用智能手机上的应用程序,直接从电脑屏幕扫描二维码。您可以看到应用程序提示我打开二维码中指定的URL。
点击“确定”将打开二维码中指定的URL。
DevExpress Document Server绝对是您如果开发软件需要强烈考虑购买的产品。DevExpress在开发此产品时充分考虑了开发人员的需求,使其非常容易集成到您的代码中。开发人员最不需要的就是为了使其正常工作而捣鼓代码。DevExpress认识到这一点,并创建了易于使用的高质量产品。DevExpress Document Server只是非常广泛的DevExpress产品系列的一小部分。请访问他们的网站,了解DevExpress能为您的应用程序做些什么。
重要披露:我收到了上述一个或多个产品或服务的免费试用,希望能在我博客中提及。无论如何,我只推荐我个人使用并认为我的读者会喜欢的产品或服务。我根据联邦贸易委员会16 CFR第255部分:“广告中认可和推荐的使用指南”披露此信息。