2 using NPOI.XWPF.UserModel
代码:
1 XWPFDocument doc = new XWPFDocument() //创建新的word文档2
3 XWPFParagraph p1 = doc.CreateParagraph() //向新文档中添加段落
4 p1.SetAlignment(ParagraphAlignment.CENTER) //段落对其方式为居中
5
6 XWPFRun r1 = p1.CreateRun() //向该段落中添加文字
7 r1.SetText("测试段落一")
8
9 XWPFParagraph p2 = doc.CreateParagraph()
10 p2.SetAlignment(ParagraphAlignment.LEFT)
11
12 XWPFRun r2 = p2.CreateRun()
13 r2.SetText("测试段落二")
14
15
16 FileStream sw = File.Create("cutput.docx") //...
17 doc.Write(sw) //...
18 sw.Close() //在服务端生成文件
19
20 FileInfo file = new FileInfo("cutput.docx")//文件保存路径及名称
21 //注意: 文件保存的父文件夹需添加Everyone用户,并给予其完全控制权限
22 Response.Clear()
23 Response.ClearHeaders()
24 Response.Buffer = false
25 Response.ContentType = "application/octet-stream"
26 Response.AppendHeader("Content-Disposition", "attachmentfilename="
27 + HttpUtility.UrlEncode("output.docx", System.Text.Encoding.UTF8))
28 Response.AppendHeader("Content-Length", file.Length.ToString())
29 Response.WriteFile(file.FullName)
30 Response.Flush() //以上将生成的word文件发送至用户浏览器
31
32 File.Delete("cutput.docx") //清除服务端生成的word文件
(19条消息) 使用POI读写word docx文件 wangxintong_1992的博客-CSDN博客 poi 写入word
POI *** 作word模板并生成新的word - (jianshu.com)
POI在读写 word docx 文件时是通过 XWPF 模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象:
XWPFDocument:代表一个docx文档
XWPFParagraph:代表一个段落。
XWPFRun:代表具有相同属性的一段文本。
XWPFTable:代表一个表格。
XWPFTableRow:表格的一行。
XWPFTableCell:表格对应的一个单元格。
如有错误,欢迎指正
国内有个免费的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。
1.新起一页合并
import com.spire.doc.Documentimport com.spire.doc.FileFormat
public class MergeWordDocument {
public static void main(String[] args){
//获取第一个文档的路径
String filePath1 = "merge1.docx"
//获取第二个文档的路径
String filePath2 = "merge2.docx"
//加载第一个文档
Document document = new Document(filePath1)
//使用insertTextFromFile方法将第二个文档的内容插入到第一个文档
document.insertTextFromFile(filePath2, FileFormat.Docx_2013)
//保存文档
document.saveToFile("Output.docx", FileFormat.Docx_2013)
}
}
2.承接上文段落合并
import com.spire.doc.Documentimport com.spire.doc.DocumentObject
import com.spire.doc.FileFormat
import com.spire.doc.Section
public class MergeWordDocument {
public static void main(String[] args){
//获取第一个文档的路径
String filePath1 = "merge1.docx"
//获取第二个文档的路径
String filePath2 = "merge2.docx"
//加载第一个文档
Document document1 = new Document(filePath1)
//加载第二个文档
Document document2 = new Document(filePath2)
//获取第一个文档的最后一个section
Section lastSection = document1.getLastSection()
//将第二个文档的段落作为新的段落添加到第一个文档的最后一个section
for (Section section:(Iterable <Section>)document2.getSections()) {
for (DocumentObject obj:(Iterable <DocumentObject>)section.getBody().getChildObjects()
) {
lastSection.getBody().getChildObjects().add(obj.deepClone())
}
}
//保存文档
document1.saveToFile("Output.docx", FileFormat.Docx_2013)
}
}
可参考原文。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)