java:poi导出word文档

导入依赖

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>

复制代码
import org.apache.poi.xwpf.usermodel.*;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.Field;

public class WordDocumentExporter {
    public void exportToWord(HttpServletResponse response, Object data) {
        XWPFDocument document = new XWPFDocument();

        // 创建表格
        XWPFTable table = document.createTable();
        XWPFTableRow headerRow = table.getRow(0);
        headerRow.getCell(0).setText("属性名");
        headerRow.addNewTableCell().setText("属性值");

        // 获取类的所有属性
        Field[] fields = data.getClass().getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            String fieldName = field.getName();
            String fieldValue = "";
            try {
                Object value = field.get(data);
                fieldValue = value != null ? value.toString() : "";
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

            XWPFTableRow row = table.createRow();
            row.getCell(0).setText(fieldName);
            row.getCell(1).setText(fieldValue);
        }

        try {
            // 设置响应头
            response.setContentType("application/msword");
            response.setHeader("Content-Disposition", "attachment; filename=output.docx");

            // 输出到浏览器
            document.write(response.getOutputStream());
            response.getOutputStream().close();
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
相关推荐
亿坊电商1 分钟前
PHP框架 vs 原生开发:移动应用后端开发实战对比!
开发语言·php
S***q19218 分钟前
Kotlin内联函数优化
android·开发语言·kotlin
JIngJaneIL22 分钟前
汽车租赁|汽车管理|基于Java+vue的汽车租赁系统(源码+数据库+文档)
java·vue.js·spring boot·汽车·论文·毕设·汽车租赁
在路上看风景22 分钟前
2.3 C#装箱和拆箱
开发语言·c#
C语言小火车30 分钟前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
曾经的三心草30 分钟前
JavaEE初阶-多线程1
android·java·java-ee
m***567233 分钟前
【Spring】Spring MVC案例
java·spring·mvc
g***B73837 分钟前
Python数据分析案例
开发语言·python·数据分析
小灰灰搞电子37 分钟前
Qt 使用打印机详解
开发语言·qt
lqj_本人38 分钟前
鸿蒙Qt混合开发:NAPI数据转换的深坑与避雷指南
开发语言·qt