写个Java demo 输出word
时间: 2023-08-21 12:04:35 浏览: 44
以下是一个简单的Java示例,使用Freemarker生成Word文档:
```java
import freemarker.template.Configuration;
import frearker.template.Template;
import freemarker.templateException;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class WordDemo {
public static void main(String[] args) {
// 配置Freemarker
Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);
cfg.setDefaultEncoding("UTF-8");
try {
// 加载模板文件
Template template = cfg.getTemplate("template.ftl");
// 准备要填充的数据
Map<String, Object> data = new HashMap<>();
data.put("title", "Hello World");
data.put("content", "This is a sample Word document.");
// 设置输出文件路径
String outputFilePath = "output.docx";
// 创建输出文件
File outputFile = new File(outputFilePath);
// 使用模板引擎生成Word文档
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"));
template.process(data, writer);
writer.close();
System.out.println("Word文档生成成功!");
} catch (IOException | TemplateException e) {
e.printStackTrace();
}
}
}
```
请确保你已经引入了Freemarker的依赖包,并在项目中创建了一个名为`template.ftl`的模板文件。在模板文件中,你可以使用`${}`语法来引用占位符,并在Java代码中将其替换为实际的数据。以上代码将生成一个名为`output.docx`的Word文档,内容为模板中的占位符被替换后的结果。