asp.net 读取导入的project(mpp)文件
公司项目有用到读取project文件(.mpp)并保存到指定数据库类似的功能。
查了一下大家总结的方法。
找到一哥们代码,初步判断可行,特此收藏。
using System.IO; using Microsoft.Office.Interop.MSProject;
需要引入Microsoft.Office.Interop.MSProject组件
引入方式见:http://blog.csdn.net/Flyear_cheng/archive/2008/09/07/2895865.aspx
参考:http://blog.csdn.net/wenzhixing/archive/2008/09/11/2911461.aspx
Microsoft.Office.Interop.MSProject.ApplicationClass prj = new ApplicationClass();
string prjFileName = Server.MapPath("../upfile/计划.mpp");
//Response.Write(prjFileName);
//if (new FileInfo(prjFileName).Exists)
// Response.Write("文件存在");
//else
// Response.Write("文件不存在");
prj.FileOpen(prjFileName, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.MSProject.PjPoolOpen.pjPoolReadOnly, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
foreach (Microsoft.Office.Interop.MSProject.Project proj in prj.Projects)
{
Response.Write("<table border=1 width=100%>");
Response.Write("<tr><td>任务编号</td><td>任务名</td><td>优先级</td><td>开始时间</td><td>结束时间</td><td>资源名</td><td>WBS号</td><td>完成百分比</td><td>是否完成</td><td>摘要</td><td>前置任务</td></tr>");
foreach (Microsoft.Office.Interop.MSProject.Task task in proj.Tasks)
{
if (task != null)
{
int iTaskLevel = task.OutlineLevel;
string str = string.Empty;
for (int j = 0; j < iTaskLevel; j++)
{
str += "---";
}
Response.Write("<tr><td>"+task .ID+"</td><td>" + str + task.Name + "</td><td>"+task .Priority+"</td><td>" + task.Start + "</td><td>" + task.Finish + "</td><td>" + task.ResourceNames.ToString() + "</td><td>" + task.WBS + "</td><td>" + task.PercentComplete + "</td><td>" + task.ActualFinish + "</td><td>"+task.Notes +"</td><td>");
foreach (Task t in task.PredecessorTasks)
Response.Write(t.WBS+":"+t.Name);
Response.Write("</td></tr>");
}
}
}
以上引自:http://www.cnblogs.com/ringwang/archive/2009/05/20/1471585.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。