VB.net文字 - > Excel转换(转换后需要大量格式化)

时间:2012-05-11 13:52:04

标签: vb.net vba

我正在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)将文件发送给收件人列表。
  7. 显然上面那些不完整的项目是大部分工作,但我想就你们有些人认为最好的方法来获得一些建议。文件的导入和格式化导致了一些问题,因为我无法确定最有效的方法。

    到目前为止我的想法:

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

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

    我非常感谢任何人愿意给予的建议/建议。

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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

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

  3. 速度更快。

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

答案 2 :(得分:1)

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

您也可以使用MS中的Interops与Excel,Outlook,Word等进行交互。它们并不难用。我不熟悉CodePlex,因此这可能是更好的路线或更容易的路线。我只是想为你提供另一种选择。

答案 3 :(得分:1)

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

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

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

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

答案 4 :(得分:0)

我们正在使用名为excel writer的第三方软件。可能不是你想要的,因为它需要许可证,但它非常快,客户端不必等待图表或数据输出。因为我们有这个工具,所以没有尝试别的。