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
注:如果VS报错 无法嵌入互操作类型“Microsoft.Office.Interop.MSProject.ApplicationClass”。请改用适用的接口。
在Visual Studio 中点击菜单项“视图->解决方案资源管理器”,在其中点开“引用”文件夹,在"Microsoft.Office.Interop.MSProject" 上点击鼠标右键,选择“属性”,将属性中的“嵌入互操作类型”的值改为“false”即可
asp.net 读取导入的project(mpp)文件的更多相关文章
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- VS c# 操作 Microsoft Project mpp 文件 并遍历边关系
网上找到资料提供了遍历.mpp文件中任务的功能: http://blog.csdn.net/gxf36/article/details/5253792 ======================== ...
- ASP.NET Core导入导出Excel文件
ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...
- JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动
JavaScript日历控件开发 概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...
- asp.net读取excel文件多种方法
asp.net读取excel文件的三种方法示例,包括采用OleDB读取Excel文件.引用的com组件读取Excel文件.用文件流读取. 方法一:采用OleDB读取Excel文件 把Excel文件 ...
- ASP.NET读取EXCEL文件的三种经典方法(转)
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:public DataSet ExcelToDS(string Path) { str ...
- ASP.NET读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { ...
- Asp.Net读取服务器EXE文件的方法!(超简单实例)
Asp.Net读取服务器EXE文件的方法!(超简单实例) Process process = new Process(); process.StartInfo.FileName = "d:\ ...
- R—读取数据(导入csv,txt,excel文件)
导入CSV.TXT文件 read.table函数:read.table函数以数据框的格式读入数据,所以适合读取混合模式的数据,但是要求每列的数据数据类型相同. read.table读取数据非常方便,通 ...
随机推荐
- Java的多线程机制系列:不得不提的volatile及指令重排序(happen-before)
一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专 ...
- BZOJ1192 [HNOI2006]鬼谷子的钱袋
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- destoon : 后台无法登录问题解决
经常有朋友在destoon搬家的时候 , 数据还原之后 , 会出现后台无法登录的情况 . 具体表现为后台帐号密码输入后点击确定 , 页面刷新 .并没有跳转到相应后台页面 . 但是如果帐号密码输入错误 ...
- android studio关联genymotion模拟器,未显示设备
如以下截图所示,在搭建android studio+genymotion时,遇到android studio关联genymotion时,显示不出模拟器设备,请问有没有遇到此现象的朋友,分享下解决方法, ...
- 【mysql】mysql 常用建表语句
[1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门.[2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primary ...
- the import android cannot be resolved
1.先更新SDK 2.从Window选择SDK并且Apply 3.从Project选择Android的版本
- ss命令和Recv-Q和Send-Q状态
ss 用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比nets ...
- C语言基础(10)-数组
一.数组的定义 数组就是在内存中连续的相同类型的变量空间. 二.数组在内存中的存储方式 同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的,数组名是一个地址的常量,代表数组中 ...
- .NET开源资源汇总
1>> 力软信息化系统快速开发框架 2>> 金碟友商网 3>>
- Linux 系统命令
1.ctrl+z 让正在运行的任务暂停运行, 然后可用 bg %jobId使之后台运行,相当于: 命令 & 2. jobs -l 查看任务 3. echo $$ 查看当前进程 4.nohup ...