当前位置: 首页 > news >正文

徐州鼓楼区建设网站wordpress主题 笑话

徐州鼓楼区建设网站,wordpress主题 笑话,网站开发分析,微信小店可以做分类网站最近公司项目有一个对Project导入导出的操作#xff0c;现在市面上能同时对Project进行导入导出的除了微软自带的Microsoft.Office.Interop.MSProject#xff0c;还有就是Aspose.Tasks for .NET。但因为后者是收费软件且破解版的现阶段只到18.11#xff0c;只支持.net Frame…最近公司项目有一个对Project导入导出的操作现在市面上能同时对Project进行导入导出的除了微软自带的Microsoft.Office.Interop.MSProject还有就是Aspose.Tasks for .NET。但因为后者是收费软件且破解版的现阶段只到18.11只支持.net Framework而我们的项目是用的netcore在对Aspose.Tasks破解版进行测试的过程中始终提示“The opreation is not allowed in evaluation model”未花费过多精力去研究Aspose.Tasks。转战Interop.MSProject网上还是有相关参考资料以下是我们的代码未进行方法封装优化:需要用到COM组件:Microsoft.Office.Core以及 Microsoft.Office.Interop.MSProject导出代码public static void Export(ListImportPlanMppModel result, string fileSavePath){Microsoft.Office.Interop.MSProject.ApplicationClass prj null;try{//创建COM(MSProject)prj new Microsoft.Office.Interop.MSProject.ApplicationClass();prj.Visible true;//创建Projectprj.FileNew(Type.Missing, Type.Missing, Type.Missing, false);//prj.SetField(责任人, , true);//prj.SetField(责任人, , true);//prj.CustomFieldValueListAdd(Microsoft.Office.Interop.MSProject.PjCustomField.pjCustomProjectEnterpriseText1, 123, 11, 111, 1232, 456);//prj.ShowAddNewColumn(10);//prj.AddNewColumn(7);Microsoft.Office.Interop.MSProject.Project myProject prj.ActiveProject;Microsoft.Office.Interop.MSProject.PjFileFormat format Microsoft.Office.Interop.MSProject.PjFileFormat.pjMPP;//format定义object missing System.Reflection.Missing.Value;//missing值 //myProject.AutoTrack true;//.........................................//myProject.HoursPerDay 8;//myProject.HoursPerWeek 56;//myProject.DaysPerMonth 30;//Microsoft.Office.Interop.MSProject.WeekDays weedday myProject.Calendar.WeekDays;//weedday[1].set_Working(true);//weedday[7].set_Working(true);//myProject.ShowCriticalSlack 0;ListMicrosoft.Office.Interop.MSProject.Task taskList new ListMicrosoft.Office.Interop.MSProject.Task();foreach (var item in result){Microsoft.Office.Interop.MSProject.Task task null;//System.Threading.Thread.Sleep(1000);task myProject.Tasks.Add(item.TaskName, Type.Missing);//item.Idtask.Duration item.TaskDuration;if (item.TaskPlanStartDate.HasValue){task.Start item.TaskPlanStartDate;}if (item.TaskPlanEndDate.HasValue){task.Finish item.TaskPlanEndDate;}if (item.TaskActualStartDate.HasValue){task.ActualStart item.TaskActualStartDate;}if (item.TaskActualEndDate.HasValue){task.ActualFinish item.TaskActualEndDate;}if (item.TaskOutlineLevel 0){task.OutlineLevel Convert.ToInt16(item.TaskOutlineLevel);}//task.Milestone dr[IsMTask].ToString() 1 ? true : false;//是否里程碑0否、1是task.WBS item.WBS;//负责人task.Text1 item.ResponsibleUserName;//平米单价if (item.SquareMetrePrice.HasValue){task.Number1 Convert.ToDouble(item.SquareMetrePrice);}//标记列task.Notes item.Id.ToString();//资源名称//task.ResourceNames 资源名称1,资源名称2;标记列//task.SetField(Microsoft.Office.Interop.MSProject.PjField.pjTaskNotes, Task1);资源名称//task.SetField(Microsoft.Office.Interop.MSProject.PjField.pjTaskResourceNames, wenzhixing,wen,zhi);//task.SetField(Microsoft.Office.Interop.MSProject.PjField.pjTaskText1, 负责人);//task.SetField(Microsoft.Office.Interop.MSProject.PjField.pjTaskNumber1, 10.231);//task.Rollup true;taskList.Add(task);}for (int i 0; i taskList.Count; i){Microsoft.Office.Interop.MSProject.Task task taskList[i];var item result.FirstOrDefault(xx.Id.ToString() task.Notes);///前置任务if (!string.IsNullOrWhiteSpace(item.TaskPredecessorsIdStr)){for (int j 0; j item.TaskPredecessorsIdStr.Split(,).Length; j){var dependencTaskId item.TaskPredecessorsIdStr.Split(,)[j];var dependencTask taskList.FirstOrDefault(x x.Notes dependencTaskId);if (dependencTask ! null){var dependencTaskType Enum.ParseMicrosoft.Office.Interop.MSProject.PjTaskLinkType(item.TaskPredecessorsTypeStr.Split(,)[j]);task.TaskDependencies.Add(dependencTask, dependencTaskType, item.TaskPredecessorsDurationStr.Split(,)[j]);}}}}//保存到指定目录prj.FileSaveAs(fileSavePath, format, missing, missing, missing, missing, missing, missing, missing, MSProject.mpp, missing, missing, missing, missing, missing, missing, missing, missing, missing);}catch (Exception ex){throw ex;}finally{if (prj ! null){try{//退出COM组件prj.FileClose(Microsoft.Office.Interop.MSProject.PjSaveType.pjDoNotSave);prj.Quit(Microsoft.Office.Interop.MSProject.PjSaveType.pjDoNotSave);}catch{}}}} 导入代码public static ListImportPlanMppModel ImportTasks(string filename) {ListImportPlanMppModel result null;if (System.IO.File.Exists(filename) false){throw new FriendlyException(未找到文件信息);}result new ListImportPlanMppModel();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;}ImportPlanMppModel model new ImportPlanMppModel();model.Id task.ID.intValue();model.Guid Guid.Parse(task.GUID.toString());model.UniqueId task.UniqueID.intValue();model.TaskName task.Name;model.TaskDuration task.Duration.Duration;if (task.ParentTask ! null Convert.ToInt32(task.OutlineLevel.toString()) 1) //是否根节点mpp文件必须只有一个根节点否则会报错{model.ParentId task.ParentTask.ID.intValue();model.ParentGuid Guid.Parse(task.ParentTask.GUID.toString());}model.TaskPlanStartDate task.Start.ToNullableDateTime(); //DateTime.Parse(string.Format({0:d}, task.Start.ToDateTime())); model.TaskPlanEndDate task.Finish.ToNullableDateTime();model.TaskActualStartDate task.ActualStart.ToNullableDateTime();model.TaskActualEndDate task.ActualFinish.ToNullableDateTime();model.TaskOutlineLevel task.OutlineLevel.intValue();bool isHasChildTask false;if (task.HasChildTasks()){isHasChildTask true;}model.IsHasChildTask isHasChildTask;model.ResponsibleUserName task.GetText(1);model.SquareMetrePrice task.GetNumber(1).ToNullableDecimal();model.WBS task.WBS;string beforeTaskId string.Empty;string beforeTaskGuid string.Empty;string beforeTaskType string.Empty;string beforeTaskDuration string.Empty;if (task.Predecessors ! null task.Predecessors.isEmpty() false){foreach (Relation relation in task.Predecessors.ToIEnumerable()){beforeTaskId relation.TargetTask.ID.intValue() ,;beforeTaskGuid relation.TargetTask.GUID.toString() ,;beforeTaskType relation.Type.Value ,;beforeTaskDuration relation.Lag.Duration ,;}}model.TaskPredecessorsIdStr beforeTaskId.TrimEnd(,);model.TaskPredecessorsGuIdStr beforeTaskGuid.TrimEnd(,);model.TaskPredecessorsTypeStr beforeTaskType.TrimEnd(,);model.TaskPredecessorsDurationStr beforeTaskDuration.TrimEnd(,);result.Add(model);}return result; }发布运行问题我们的程序版本是使用的32位的project 2016 professionaloffice也是2016专业增强版的32位,在VS编译调试没有问题发布到IIS进行测试时在代码进行到//创建COM(MSProject) prj new Microsoft.Office.Interop.MSProject.ApplicationClass();会触发异常System.Runtime.InteropServices.COMException (0x80010001): Retrieving the COM class factory for component with CLSID {36D27C48-A1E8-11D3-BA55-00C04F72F325} failed due to the following error: 80010001 被呼叫方拒绝接收呼叫。 (0x80010001 (RPC_E_CALL_REJECTED))。查询了很多相关资料绝大部分都是说可能是账户权限问题给除的解决办法也都是去对Com组件进行赋权。网上大部分解决方案如下 -在命令行中输入dcomcnfg会显示出“组件服务”管理器 -打开“组件服务-计算机-我的电脑-DCOM 配置”找到“Microsoft Project”单击右键选择“属性” -在“属性”对话框中单击“标识”选项卡选择“交互式用户”” -然后找到“安全”把下面所有的权限都选择自定义然后添加各种用户全部权限。但对我们项目的代码没有作用机缘巧合我自己本机是office2010专业增强版64位project 也是64位的2010专业版我这边部署到IIS后导出在相同代码提示的是Retrieving the COM class factory for component with CLSID {36D27C48-A1E8-11D3-BA55-00C04F72F325} failed due to the following error: 80070005 拒绝访问。按照如上的网上大部分解决方案配置后依旧有问题后续对DCOM组件 project basic进行标识配置时我选择了指定具体的用户且在IIS进程池的进程模型的标识选择了LocalSystem再进行测试时发现可以正常导出且导出时不会弹出project应用窗口。在搜索解决方案时看到过 HymanLiuTS的 错误处理一—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))在文章里给出了微软的一个解决方案,方案2 引入IOleMessageFilter从根本上杜绝这种异常情况的出现,”如何修复“应用程序正忙”和“被调用者拒绝了调用”错误“参考官方代码修改了项目里的相应位置的代码具体修改如下MessageFilter.Register();//新增异常处理代码 //创建COM(MSProject) prj new Microsoft.Office.Interop.MSProject.ApplicationClass();if (prj ! null) {try{//退出COM组件prj.FileClose(Microsoft.Office.Interop.MSProject.PjSaveType.pjDoNotSave);prj.Quit(Microsoft.Office.Interop.MSProject.PjSaveType.pjDoNotSave);}catch{} } MessageFilter.Revoke();//新增异常处理代码再将DCOM的标识从指定具体账号更改为交互式用户iis配置不变也能导出成功不过在导出文件时会弹出project应用窗口。注上述两种处理方式在32位的project 2016上始终未能解决若您有解决方案请你留言向您讨教。
http://www.hkea.cn/news/14496110/

相关文章:

  • 手把手教你做网站一键打开多个wordpress
  • 潭州教育网站开发网站建设那好
  • 网站开发干嘛移动端网站建设的请示
  • 返佣贵金属交易所网站建设网站制作开发策划
  • 网站备案在哪里查询网站后台更新文章 前台不显示
  • 做房地产行业的怎么做网站在阿里巴巴上做网站需要什么条件
  • 柳州企业网站建设公司汕头网站上排名
  • 已经有网站域名如何做网页优化网站公司哪家口碑好
  • 可信网站认证必须做吧网站开发工具简介
  • 所见即所得的网站开发软件网站建设找哪家公司比较好
  • 企业网站做静态网站还是嘉定网站建设公司
  • 品牌服装网站建设现状学视频剪辑大概需要多少钱
  • 深圳做二类学分的网站有了网站源码如何做网页
  • 建设校园网站意义四川省城乡住房建设厅网站
  • 商业网站设计与制作请描述网站开发的一般流程图
  • 怎么做足球直播网站网店运营
  • 引擎网站推广法怎么做现在网站建设用到哪些技术
  • 帮别人设计网站的网站阳江招聘网最新消息
  • 怎么做公司销售网站PHP 网站搜索怎么做
  • 嘉兴企业网站模板建站沈阳亚洲城属于哪个社区
  • asp.net 网站管理工具 遇到错误网站开发设计的技术路线
  • 书画网站建设方案策划上海装修公司投诉
  • 网站如何更新一个专门做酒店招聘的网站
  • 跨境电商那个网站做饰品比较好万网建网站流程
  • 建立网站的步骤有哪些想开民宿自己怎么做介绍的网站
  • ps做字幕模板下载网站有哪些子商务网站建设的一般流程
  • 四川建设厅网站网站建设在哪个软件下做
  • 在线crm网站discuz是什么网站程序
  • 关于网站开发的论文自助建站凡科网
  • 太原cms建站南宁企业网站制作模板