基于Aspose Task进行MS Project导出-无限制版

   对Microsoft Office的Excel, Word的导入导出,业界有很多解决方案。 像Java语言的Apache POI就相当的成熟。但是对于Microsoft Project的导入导出的工具比较少,目前导入的部分还能找到两个, 但导出的部分就很稀少了, 而且找到的也是需要收费的。 本篇的介绍的Aspose Task是Aspose公司提供的一套解决方案,Aspose公司旗下提供最全的一套office文档管理方案- Aspose.Total,但是是收费的, 而且试用对Export功能进行了限制。这样就对进行相关方案选型带来了一些不便。


   Aspose Task在16版进行导出操作时,时间上有进行限制,导出的时间永远是2012年。而在17的时候, 已经完全禁止了导出的功能。执行的效果如下:

blob.png


接下来就介绍如何无限制的使用aspose task进行MS Project的导出。

第一步:在Visual studio中建立一笔C# 控制台应用程序

blob.png


新建LicenseProcessor.cs用来处理License.

在代码执行时, 动态设置license

 
            try
            {
                Type type2 = assembly.GetType(fName + ".License");
                MethodInfo mi = type2.GetMethod("SetLicense", new Type[] { typeof(Stream) });
                string LData = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPExpY2Vuc2U+CiAgPERhdGE+CiAgICA8TGljZW5zZWRUbz5MaWNlbnNlZTwvTGljZW5zZWRUbz4KICAgIDxFbWFpbFRvPmxpY2Vuc2VlQGVtYWlsLmNvbTwvRW1haWxUbz4KICAgIDxMaWNlbnNlVHlwZT5EZXZlbG9wZXIgT0VNPC9MaWNlbnNlVHlwZT4KICAgIDxMaWNlbnNlTm90ZT5MaW1pdGVkIHRvIDEwMDAgZGV2ZWxvcGVyLCB1bmxpbWl0ZWQgcGh5c2ljYWwgbG9jYXRpb25zPC9MaWNlbnNlTm90ZT4KICAgIDxPcmRlcklEPjc4NDM3ODU3Nzg1PC9PcmRlcklEPgogICAgPFVzZXJJRD4xMTk3ODkyNDM3OTwvVXNlcklEPgogICAgPE9FTT5UaGlzIGlzIGEgcmVkaXN0cmlidXRhYmxlIGxpY2Vuc2U8L09FTT4KICAgIDxQcm9kdWN0cz4KICAgICAgPFByb2R1Y3Q+QXNwb3NlLlRvdGFsIFByb2R1Y3QgRmFtaWx5PC9Qcm9kdWN0PgogICAgPC9Qcm9kdWN0cz4KICAgIDxFZGl0aW9uVHlwZT5FbnRlcnByaXNlPC9FZGl0aW9uVHlwZT4KICAgIDxTZXJpYWxOdW1iZXI+e0YyQjk3MDQ1LTFCMjktNEIzRi1CRDUzLTYwMUVGRkExNUFBOX08L1NlcmlhbE51bWJlcj4KICAgIDxTdWJzY3JpcHRpb25FeHBpcnk+MjA5OTEyMzE8L1N1YnNjcmlwdGlvbkV4cGlyeT4KICAgIDxMaWNlbnNlVmVyc2lvbj4zLjA8L0xpY2Vuc2VWZXJzaW9uPgogIDwvRGF0YT4KICA8U2lnbmF0dXJlPlFYTndiM05sTGxSdmRHRnNJRkJ5YjJSMVkzUWdSbUZ0YVd4NTwvU2lnbmF0dXJlPgo8L0xpY2Vuc2U+";
                Stream stream = new MemoryStream(Convert.FromBase64String(LData));
                stream.Seek(0, SeekOrigin.Begin);
                mi.Invoke(Activator.CreateInstance(type2, null), new Stream[] { stream });
            }
            catch
            {
                throw new InvalidOperationException("SetLicense for \"" + assembly.FullName + "\" failed !");
            }

第二步:解压本篇的附件

blob.png

第三步:引用附件中的dll

blob.png




第四步: 将附件中的cs文件copy到项目根路径中

blob.png


第五步: 准备MS Project空白文件

在以下路径放置一个Ms Project的空白文件 Project1.mpp

D:\\devworkspace\\vsstudiowkspace\\msprjImpExp\\msprjImpExp\\files\\

当然, 这个路径也可以换, 和代码中设置的路径保持一致就可以了。

blob.png


第六步: 按F5执行,在同一目录产生Project1_new.mpp ,打开后效果如下:

blob.png


后记:

   本篇重点介绍无限制导出MS Project, 对于Aspose Task的具体使用不做太多介绍, 感兴趣者可以关注后续的部分。

   另外,在笔者实际的应用中, 会将ms project的导入导出功能放在Web API的项目中,作为一个Common的Web端服务供使用。 



附相关部分下载:

https://download.csdn.net/download/oscar999/10298529

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值