using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using net.sf.mpxj;
using net.sf.mpxj.MpxjUtilities;
using net.sf.mpxj.reader;
using System.Data;
namespace ConstructionProcessManage_Mpxj
{
public class MpxjHelper
{
/// <summary>
/// 导入MSProject文件
/// </summary>
/// <param name="filename">文件地址</param>
/// <param name="projectId"></param>
/// <param name="usercode"></param>
/// <param name="dt1">任务列表</param>
/// <param name="dt2">前置任务列表</param>
/// <returns></returns>
public void ImportTasks(string filename, out DataTable dt1, out DataTable dt2)
{
dt1 = GetTableSchema1();
dt2 = GetTableSchema2();
ProjectReader reader = ProjectReaderUtility.getProjectReader(filename);
ProjectFile file = reader.read(filename);
foreach (net.sf.mpxj.Task task in file.Tasks.ToIEnumerable())
{
if (task.ID.toString()=="0") //自动创建的节点,一般为文件名,不需要
{
continue;
}
DataRow dr = dt1.NewRow();
DateTime dtstartdate = task.Start.ToDateTime(); //开始时间
DateTime dtenddate = task.Finish.ToDateTime();//结束时间
脱离Office约束,C#结合Mpxj组件完美解析MSProject(.mpp)文件
最新推荐文章于 2024-07-14 09:25:06 发布
本文介绍了如何利用C#结合Mpxj组件,从MSProject的.mpp文件中提取数据。提供了一个链接,可以在百度网盘下载Mpxj组件,并提示了原文的版权信息。
摘要由CSDN通过智能技术生成