在这篇文章中,我们将带领您了解七招挽回受损word文档的全貌,包括七招挽回受损word文档的相关情况。同时,我们还将为您介绍有关C#复制一个Word文档的部分或全部内容到另一个Word文档、java使
在这篇文章中,我们将带领您了解七招挽回受损word文档的全貌,包括七招挽回受损word文档的相关情况。同时,我们还将为您介绍有关C# 复制一个Word文档的部分或全部内容到另一个Word文档、java使用POI工具读取word文档并写入生成新的word文档及错误整理、PPT文档怎么转Word文档 PPT转Word文档的操作方法、WinXP系统Word文档损坏打不开 Word文档损坏怎么办的知识,以帮助您更好地理解这个主题。
本文目录一览:- 七招挽回受损word文档(七招挽回受损word文档)
- C# 复制一个Word文档的部分或全部内容到另一个Word文档
- java使用POI工具读取word文档并写入生成新的word文档及错误整理
- PPT文档怎么转Word文档 PPT转Word文档的操作方法
- WinXP系统Word文档损坏打不开 Word文档损坏怎么办
七招挽回受损word文档(七招挽回受损word文档)
Word在Normal.dot模板文件中存储默认信息,如果该模板文件被损坏,可能会引发无法打开Word文档的错误。此时,请创建新的Normal模板,操作步骤如下: 1. 关闭Word;
C# 复制一个Word文档的部分或全部内容到另一个Word文档
C# 复制一个Word文档的部分或全部内容到另一个Word文档
我最近喜欢折腾Office软件相关的东西,想把很多Office软件提供的功能用.NET来实现,如果后期能把它用来开发一点我自己的小应用程序那就更好了。
扯远了,回到正题。复制文档内容这个功能太常见啦,在微软Word中实现这个功能很简单,只需要复制和粘贴就行了。这篇文章的主要目的是记录如何用C#来实现复制一个Word文档的部分或全部内容到另一个word文档,废话不多说,下面开始。
第一部分:复制部分内容:
在我的这个示例中,复制部分内容指的是复制一个word文档的部分段落(包括格式、图片和超链接等)到另一个word文档。
原文档截图:
步骤参考:
第一步:新建一个word文档对象doc1并加载需要复制的word文档。
Document doc1 = new Document(); doc1.LoadFromFile("sample.docx");
第二步:新建一个word文档对象doc2。
Document doc2 = new Document();
第三步:获取被复制文档doc1的第一个section以及第一、二个段落(图片和标题)。
Section s = doc1.Sections[0]; Paragraph p1 = s.Paragraphs[0]; Paragraph p2 = s.Paragraphs[1];
第四步:给doc2添加一个section,并将doc1的第一二段的内容和格式等复制到doc2中。
Section s2 = doc2.AddSection(); Paragraph NewPara1 = (Paragraph)p1.Clone(); s2.Paragraphs.Add(NewPara1); Paragraph NewPara2 = (Paragraph)p2.Clone(); s2.Paragraphs.Add(NewPara2);
第五步:保存并重新打开文档。
doc2.SavetoFile("copy.docx",FileFormat.Docx2010); System.Diagnostics.Process.Start("copy.docx");
目标文档效果图:
第二部分:复制全部内容
复制全部内容指的是将除header和footer以外的其他所有内容复制到另一个文档。
步骤参考:
第一步:新建两个word document对象,并加载待复制的源word文档和目标word文档。
Document sourceDoc = new Document("sample.docx"); Document destinationDoc = new Document("target.docx");
第二步:遍历源word文档中的所有section并把它们的内容复制到目标word文档。
foreach (Section sec in sourceDoc.Sections) { foreach (DocumentObject obj in sec.Body.Childobjects) { destinationDoc.Sections[0].Body.Childobjects.Add(obj.Clone()); } }
第三步:保存并重启目标word文档。
destinationDoc.SavetoFile("target.docx"); System.Diagnostics.Process.Start("target.docx");
在word文档之间单独复制header和footer也可以实现的,如有需要可以在下面留言。
原文档与效果图:
效果图:
结语:
文章写的比较简单,这里我还是使用了E-iceblue公司的免费Word控件,原因是它简单好用,而且我也使用的比较熟练了。接下来我还会研究它的其它功能,并用C#实现Office软件的其它功能。
java使用POI工具读取word文档并写入生成新的word文档及错误整理
一、读取word文档并写入生成新的word文档:
1.使用工具包:poi-版本号.jar poi-scratchpad-版本号-beta5.jar或poi-scratchpad-版本号.jar
2.代码:
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.model.FieldsDocumentPart; import org.apache.poi.hwpf.usermodel.Field; import org.apache.poi.hwpf.usermodel.Fields; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.hwpf.usermodel.Table; import org.apache.poi.hwpf.usermodel.TableCell; import org.apache.poi.hwpf.usermodel.TableIterator; import org.apache.poi.hwpf.usermodel.TableRow; public class WordTest { /** * @param args */ public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("${name}", "张三"); map.put("${age}", "20"); map.put("${province}", "山西"); map.put("${city}", "太原"); map.put("${district}", "迎泽区"); map.put("${school}", "test"); String srcPath = "C:\\Users\\Administrator\\Desktop\\test.doc"; readwriteWord(srcPath, map); } /** * 实现对word读取和修改操作 * * @param filePath * word模板路径和名称 * @param map * 待填充的数据,从数据库读取 */ public static void readwriteWord(String filePath, Map<String, String> map) { // 读取word模板 // String fileDir = new // File(base.getFile(),"http://www.cnblogs.com/http://www.cnblogs.com/../doc/").getCanonicalPath(); FileInputStream in = null; try { in = new FileInputStream(new File(filePath)); } catch (FileNotFoundException e1) { e1.printStackTrace(); } HWPFDocument hdt = null; try { hdt = new HWPFDocument(in); } catch (IOException e1) { e1.printStackTrace(); } Fields fields = hdt.getFields(); Iterator<Field> it = fields.getFields(FieldsDocumentPart.MAIN) .iterator(); while (it.hasNext()) { System.out.println(it.next().getType()); } //读取word文本内容 Range range = hdt.getRange(); TableIterator tableIt = new TableIterator(range); //迭代文档中的表格 int ii = 0; while (tableIt.hasNext()) { Table tb = (Table) tableIt.next(); ii++; System.out.println("第"+ii+"个表格数据..................."); //迭代行,默认从0开始 for (int i = 0; i < tb.numRows(); i++) { TableRow tr = tb.getRow(i); //只读前8行,标题部分 if(i >=8) break; //迭代列,默认从0开始 for (int j = 0; j < tr.numCells(); j++) { TableCell td = tr.getCell(j);//取得单元格 //取得单元格的内容 for(int k=0;k<td.numParagraphs();k++){ Paragraph para =td.getParagraph(k); String s = para.text(); System.out.println(s); } //end for } //end for } //end for } //end while //System.out.println(range.text()); // 替换文本内容 for (Map.Entry<String, String> entry : map.entrySet()) { range.replaceText(entry.getKey(), entry.getValue()); } ByteArrayOutputStream ostream = new ByteArrayOutputStream(); String fileName = "" + System.currentTimeMillis(); fileName += ".doc"; FileOutputStream out = null; try { out = new FileOutputStream("F:/" + fileName, true); } catch (FileNotFoundException e) { e.printStackTrace(); } try { hdt.write(ostream); } catch (IOException e) { e.printStackTrace(); } // 输出字节流 try { out.write(ostream.toByteArray()); } catch (IOException e) { e.printStackTrace(); } try { out.close(); } catch (IOException e) { e.printStackTrace(); } try { ostream.close(); } catch (IOException e) { e.printStackTrace(); } } } |
二、问题整理:
报错内容:org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()
Lorg/apache/poi/poifs/filesystem/DirectoryNode错误!
解决方案:升级poi-版本号.jar包
PPT文档怎么转Word文档 PPT转Word文档的操作方法
PPT怎么转word文档呢?有用户反映PPT资料打印页面很多,怎么才能转为word文档呢?下面给大家介绍PPT文档转为word文档的操作方法。
方法一、利用大纲视图
打开PPT演示文稿,单击“大纲”,在左侧“幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按“Ctrl+A”组合键全选内容,然后使用“Ctrl+C”组合键或右键单击在快捷菜单中选择“复制”命令,将内容粘贴到Word里。这种方法会把原来幻灯片中的行标、各种符号原封不动复制下来。
WinXP系统Word文档损坏打不开 Word文档损坏怎么办
在办公的时候word软件时最常使用的,那么Word文档出现了损坏该怎么解决呢?有用户反映Word文档突然损坏打不开怎么办?本文将介绍Word文档损坏的三个解决方法。
解决方法:
一、文档格式法
1、这种方法是将损坏的Word文档转换为另一种格式,然后再将它转换回Word文档格式。这是最简单和最彻底的文档恢复方法。所以如果遇到显示混乱的情况,推荐首先使用这种方法。步骤如下:
2、打开Word文档,依次在菜单栏单击【文件】——【另存为】。
3、在【另存为】窗口单击“保存类型”,在下拉列表中选择【RTF格式(*.rtf)】,单击【保存】按钮。
4、打开转换好的RTF文件,接着同样再单击【文件】菜单中的【另存为】命令。
[page]
5、在【保存类型】列表中选择【Word文档(*.doc)】,单击【保存】按钮。
6、Word文档与RTF的相互转换将保留其格式,如果这种转换没有修复文件,则可以尝试与其他格式相互转换,这将不同程度地保留Word文档的格式。如果使用这些格式均无法解决本问题,可将文档转换为纯文本格式(.txt),再转换回Word格式。由于纯文本的简单性,有可能修复损坏处,但是Word文档的所有格式设置都将丢失。
二、重设格式法
1、Word用文档中的最后一个段落标记关联各种格式设置信息,特别是节与样式的格式设置信息。这样,如果我们将最后一个段落标记之外的所有内容复制到新文档,就有可能将损坏的内容留在原始文档中。步骤如下:
2、打开损坏的Word文档,单击菜单栏的【工具】,打开的菜单单击【选项】命令。
[page]
3、切换到【编辑】标签,将【使用智能段落选择范围】前面的勾去掉,单击【确定】按钮。
4、选定最后一个段落标记之外的所有内容:先按【Ctrl+End】组合键,然后再按【Ctrl+Shift+Home】。
5、在常用工具栏依次单击【复制】、【新建空白文档】、【粘贴】按钮。
三、重建模板法
1、Word在“normal.dot”模板文件中存储默认信息,如果该文件被损坏,Word文档也有可能出问题。创建新的normal模板的步骤如下:
2、单击【开始】菜单,单击【运行】命令。
[page]
3、在【打开】栏粘贴以下%APPDATA%MicrosoftTemplates,单击【确定】按钮。
4、打开的文件夹窗口将【normal.dot】文件删除掉。
5、如果看不到normal.dot文件,可能是被隐藏起来了。需这样设置:在最上方菜单栏依次单击【工具】——【文件夹选项】。
6、切换到【查看】选项卡,在【高级设置】列表框将【隐藏受保护的操作系统文件(推荐)】前面的勾去掉,并选择【显示所有文件和文件夹】,单击【确定】按钮使设置生效。
7、创建新的normal模板后,可以尝试打开损坏的文档。如果问题解决了,那就表明旧的normal模板确实已经损坏。此外,如果你的文档还用到了“normal.dot”之外的其他模板,为解决问题,也请尝试重新创建该模板或使用它的较早版本。
相关问题推荐:
Word文档打不开怎么办 word文档打不开解决方法
Word插入文件提示“创建Word对象出错”怎么解决
Word文档工具栏不见怎么办 word工具栏怎么恢复
关于七招挽回受损word文档和七招挽回受损word文档的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于C# 复制一个Word文档的部分或全部内容到另一个Word文档、java使用POI工具读取word文档并写入生成新的word文档及错误整理、PPT文档怎么转Word文档 PPT转Word文档的操作方法、WinXP系统Word文档损坏打不开 Word文档损坏怎么办的相关知识,请在本站寻找。
本文标签: