我正在VB.net中创建一个执行以下操作的程序:
在较高级别,我通过电子邮件接收文件,将附件放入受监控的文件夹,将文本文件导入Excel,格式化Excel,然后将excel文件通过电子邮件发送给收件人列表。
这是我的计划:
显然上面那些不完整的项目是大部分工作,但我想就你们有些人认为最好的方法来获得一些建议。文件的导入和格式化导致了一些问题,因为我无法确定最有效的方法。
到目前为止我的想法:
在格式化文档方面,我想到的是记录我执行我需要的所有格式的宏,然后尝试将该宏转换为我的vb.net代码,但是我我不确定这是否有效。我需要验证文本文件是否每次都是正确的格式?
我非常感谢任何人愿意给予的建议/建议。
答案 0 :(得分:2)
您需要使用http://epplus.codeplex.com/
它允许您从头开始创建Excel文件,而无需自己启动Excel。自动化Excel会使进程变慢并且缺乏健壮性(Excel进程可能挂起或未正常关闭)。
此外,使用.Net库允许您在没有安装Excel的服务器上运行它。 (下一步是通过POP,IMAP或Exchange API检查邮箱,以便不必在客户端计算机上运行该部分)
答案 1 :(得分:1)
如果您想操作Excel文件,我可以向您推荐CodePlex上的NPOI library。它比OLE自动化有几个优点:
NPOI不依赖于特定的Excel版本。
无需安装Excel(或任何其他Office组件)。
速度更快。
它适用于.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的第三方软件。可能不是你想要的,因为它需要许可证,但它非常快,客户端不必等待图表或数据输出。因为我们有这个工具,所以没有尝试别的。