问题描述
c#使用Microsoft.Office.Interop.Word操作word时需要将外部导入的完整word按标题拆分多个小word,哪位有这方面的经验,帮帮忙。
解决方案
解决方案二:
将一个Word文档分割成多个小Word文档示例privateWord.ApplicationG_wa;//定义Word应用程序字段privateobjectG_missing=//定义G_missing字段并添加引用System.Reflection.Missing.Value;privateOpenFileDialogG_OpenFileDialog;//定义打开文件对话框字段privateFolderBrowserDialogG_FolderBrowserDailog;//定义浏览文件夹对话框字段privatevoidbtn_Get_Click(objectsender,EventArgse){btn_split.Enabled=false;//停用分割按钮ThreadPool.QueueUserWorkItem(//开始线程池(pp)=>//使用lambda表达式{G_wa=newMicrosoft.Office.Interop.Word.Application();//创建应用程序对象objectP_OpenFileDialog=//创建object对象G_OpenFileDialog.FileName;Word.DocumentP_Document=G_wa.Documents.Open(//打开Word文档refP_OpenFileDialog,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing,refG_missing);boolP_bl=false;this.Invoke(//调用窗体线程(MethodInvoker)(()=>//使用lambda表达式{P_bl=cbox_Select.SelectedIndex==0;}));if(P_bl)//判断使用什么方式分割文档{foreach(Word.ParagraphParagraphinG_wa.ActiveDocument.Paragraphs){Paragraph.Range.Select();//选择段落Paragraph.Range.Copy();//将段落放入剪切板AddFile();//将剪切板内的数据放入新建文件}}else{Word.RangeP_Range=G_wa.ActiveDocument.Content;//得到文档区域intP_int_count=P_Range.Text.Length;//得到文档字符总长度intP_int_i=P_int_count/100;//计算循环建立文档次数if(P_int_i>0)//如果文档内文字大于100个{for(inti=0;i<P_int_i;i++)//开始循环创建文档{objectP_o1=i==0?0:i*100+1;//复制文档范围的开始部份objectP_o2=i*100+101;//复制文档范围的结尾部份Word.RangeP_Range_temp=//得到文档的范围G_wa.ActiveDocument.Range(refP_o1,refP_o2);P_Range.Select();//选中文档范围P_Range_temp.Copy();//将选择文档范围放入剪切板AddFile();//将剪切板内的数据放入新建文件}//codego.net/tags/1/1/objectP_o11=P_int_i*100+1;//复制文档范围的开始部份Word.RangeP_Range_temp1=//得到文档的范围G_wa.ActiveDocument.Range(refP_o11,refG_missing);P_Range.Select();//选中文档范围P_Range_temp1.Copy();//将选择文档范围放入剪切板AddFile();//将剪切板内的数据放入新建文件}else{Word.RangeP_Range2=//得到文档区域G_wa.ActiveDocument.Content;P_Range.Select();//选中文档范围P_Range2.Copy();//将选择文档范围放入剪切板AddFile();//将剪切板内的数据放入新建文件}}((Word._Application)G_wa.Application).Quit(//退出应用程序refG_missing,refG_missing,refG_missing);this.Invoke(//调用窗体线程(MethodInvoker)(()=>//使用lambda表达式{Clipboard.Clear();//清空剪切板MessageBox.Show(//提示已经创建Word"分割文档完成!","提示!");btn_split.Enabled=true;//启用分割按钮}));});}