脱离微软 Microsoft Project 读取 Project 文件

一、创建C#项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、下载mxpj插件

百度网盘下载链接: https://pan.baidu.com/s/1ztAqxKEKgUdu2lN8hxZSIw
提取码:
dxh7

三、添加引用

在这里插入图片描述

四、上手写代码

using System.Collections.Generic;
using System.Linq;
using System.Text;

using net.sf.mpxj.reader;
using net.sf.mpxj;
using net.sf.mpxj.MpxjUtilities;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string _fullFileName = @"C:\Users\Administrator\Desktop\临时文件\01百邦电子实施主计划(一期)(1).mpp";
            ProjectReader reeder = ProjectReaderUtility.getProjectReader(_fullFileName);
            ProjectFile file = reeder.read(_fullFileName);
            #region
            foreach (net.sf.mpxj.Task task in file.Tasks.ToIEnumerable())
            {
                if (task.ID.toString() == "0") 
                {
                    continue;
                }
                string ID = task.ID.toString();//ID
                string FPARENTROWID = task.ParentTask.ID.toString();//父级ID
                string FTASKNAME = task.Name;//名称
                string FSTART = task.Start.ToDateTime().ToString().Substring(0, 10);//预算开始日期
                string FFINISH = task.Finish.ToDateTime().ToString().Substring(0, 10);//预算结束日期
                string FSHIJISTAR = task.LateStart.ToDateTime().ToString().Substring(0, 10);//实际开工日期
                string FSHIJIFIND = task.LateFinish.ToDateTime().ToString().Substring(0, 10);//实际结束日期
                int day = task.LateFinish.ToDateTime().Subtract(task.LateStart.ToDateTime()).Days + 1;//预计用时
                Console.WriteLine(ID);
                Console.WriteLine(FTASKNAME);

            }
            #endregion
        }
    }
}

在这里插入图片描述

五、结束

在这里插入图片描述

六、点赞关注

对您有帮助,请务必点个赞和加一下关注,以免下次找不到我哦。

如有商业用途,请标明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于微软Project存盘文件使用的是二进制格式,因此读取需要使用相应的库。以下是一份使用Apache POI库读取Project文件的Java代码示例: ```java import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.DocumentInputStream; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import java.io.FileInputStream; import java.io.IOException; public class ProjectReader { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("path/to/project.mpp"); POIFSFileSystem fileSystem = new POIFSFileSystem(fis); // 获取DocumentSummaryInformation和SummaryInformation DocumentSummaryInformation dsi = fileSystem.getDocumentSummaryInformation(); SummaryInformation si = fileSystem.getSummaryInformation(); // 打印文档信息 System.out.println("标题:" + si.getTitle()); System.out.println("主题:" + si.getSubject()); System.out.println("作者:" + si.getAuthor()); System.out.println("关键字:" + si.getKeywords()); System.out.println("注释:" + si.getComments()); System.out.println("创建时间:" + si.getCreateDateTime()); System.out.println("修改时间:" + si.getLastSaveDateTime()); // 读取工作表 DocumentInputStream dis = fileSystem.createDocumentInputStream("Workbook"); HSSFWorkbook workbook = new HSSFWorkbook(dis); Sheet sheet = workbook.getSheetAt(0); // 遍历行和列 for (Row row : sheet) { for (Cell cell : row) { System.out.print(cell.toString() + "\t"); } System.out.println(); } fis.close(); } } ``` 需要注意的是,该代码使用的是Apache POI的旧版本,如果要使用最新的POI库,可能需要做出一些调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值