1

我正在 VB.net 中创建一个程序,它执行以下操作:

在较高级别上,我在电子邮件中收到一个文件,将附件放在受监控的文件夹中,将文本文件导入 excel,格式化 excel,然后将 excel 文件通过电子邮件发送给收件人列表。

这是我的计划:

  1. 已完成:Outlook VBA 监控所有传入电子邮件的特定消息。收到消息后,将附加的 .txt 文件放到特定的网络文件夹中。
  2. 已完成:(VB.net)监视器文件夹,添加文本文件时开始处理
  3. 未完成:(VB.net)将文本文件导入 Excel
  4. 不完整:(VB.net) 格式化 Excel 文本文件。(添加一行数据,用颜色/大小格式化列标题,添加一些空白列,向一些允许下拉选择的空白列添加数据验证)
  5. 完成:(VB.net)保存文件。
  6. 已完成:(VB.net)将文件发送到收件人列表。

显然,上述不完整的项目是大部分工作,但我想就你们中的一些人认为处理此类事情的最佳方式获得一些建议。文件的导入和格式化给我带来了一些问题,因为我无法决定什么是最有效的方法。

到目前为止我想到的:

  • 方法如上。导入到 excel -> 格式
  • 拥有一个包含已经为我完成的所有格式的模板 excel,并尝试将数据转换到此文档(不知道我是否/如何做到这一点)。它甚至可行吗?是否已经创建了模板,然后将文本文件导入新的 excel 文件,然后将该数据转换为 excel 模板?

在格式化文档方面,我想到的事情是记录一个我做我需要的所有格式的宏,然后尝试将该宏转换为我的 vb.net 代码,但我不是确定这是否可行。我每次都需要验证文本文件的格式是否正确?

我非常感谢任何人愿意提供的任何建议/建议。

4

5 回答 5

2

您将需要使用http://epplus.codeplex.com/

它允许您从头开始创建 Excel 文件,而无需启动 Excel 本身。自动化 Excel 会使流程变慢并且缺乏稳健性(Excel 流程可能会挂起或无法正常关闭)。

此外,使用 .Net 库可以让您在没有安装 Excel 的服务器上运行它。(下一步是通过 POP、IMAP 或 Exchange API 检查邮箱,因此该部分也不必在客户端计算机上运行)

于 2012-05-11T13:58:53.023 回答
1

如果你想操作 Excel 文件,我可以向你推荐 CodePlex 上的NPOI 库。与 OLE 自动化相比,它有几个优点:

  1. NPOI 不依赖于特定的 Excel 版本。

  2. 不需要安装 Excel(或任何其他 Office 组件)。

  3. 它更快。

它适用于 .XLS 和 .XLSX 文件。

于 2012-05-11T14:10:35.377 回答
1

http://msdn.microsoft.com/en-us/library/kh3965hw(v=vs.100).aspx

您也可以只使用 MS 的 Interops 与 Excel、Outlook、Word 等进行交互。它们一点也不难使用。我不熟悉 CodePlex,所以这可能是一条更好或更简单的路线。我只是想为您提供一个替代方案。

于 2012-05-11T14:30:48.013 回答
1

使用 Microsoft Office 2010 Interops,您不能再从 .net 应用程序生成 Office 文件。

您可以操作现有 Excel 文件中的数据,因此您需要模板(您的第四点)。然后 Excel 允许您查询一些数据库。您也许可以用您的文件夹模拟一个,否则我建议将您的 .txt 文件转换为一些数据库。(第三点)

如果您确实使用旧版本,则可以通过将 Excel 文件加载到 Excel 实例中并根据需要对其进行操作来创建 Excel 文件。

顺便说一句,我认为您的附加文件将具有某种格式。

于 2012-05-11T15:16:11.683 回答
0

我们正在使用名为 excel writer 的第三方软件。可能不是您要找的,因为它需要许可证,但它非常快,客户不必等待图表或数据输出。因为我们有那个工具,所以没有尝试其他任何东西。

于 2012-05-12T14:08:37.900 回答