导入依赖
<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();}}
}