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();
        }
    }
}
相关推荐
轻浮j1 分钟前
MVCC原理以及解决脏读、不可重复读、幻读问题
java·mysql
engchina8 分钟前
Python 数据持久化
开发语言·python
久久不觉9 分钟前
嵌入式开发 的软件开发工具
开发语言·后端·golang
2401_8576009512 分钟前
游戏虚拟道具交易:网站设计与技术实现的前沿
java·数据库·vue.js·游戏·oracle·php
是小李呀~12 分钟前
RBAC权限控制
java
虽千万人 吾往矣17 分钟前
golang 熔断限流降级
开发语言·后端·golang
中國移动丶移不动19 分钟前
深度解析:Maven 和 Gradle 的使用比较及常见仓库推荐
java·maven
chengxuyuan1213_27 分钟前
python常用基础语法
开发语言·windows·python
得寸进尺的鸡丝面34 分钟前
tomcat官网下载历史版本
java·tomcat
罗政37 分钟前
PDF书籍《手写调用链监控APM系统-Java版》第7章 插件与链路的结合:Tomcat插件实现
java·pdf·tomcat