在Java中,将Excel转换为Word可以通过Apache POI和Apache POI-XWPF来实现。以下是一个简单的例子,演示如何读取Excel文件并将内容转换为Word文档。

首先,确保你的项目中包含了以下依赖:

<!-- Apache POI --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>5.2.3</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>5.2.3</version></dependency><!-- Apache POI-XWPF for docx --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml-schemas</artifactId>    <version>5.2.3</version></dependency>
<!-- Apache POI --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>5.2.3</version></dependency><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>5.2.3</version></dependency><!-- Apache POI-XWPF for docx --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml-schemas</artifactId>    <version>5.2.3</version></dependency>
  • 1.
  • 2.

然后,使用以下代码将Excel转换为Word:

import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.apache.poi.xwpf.usermodel.*; import java.io.*; public class ExcelToWordConverter {    public static void convertExcelToWord(String excelFilePath, String wordFilePath) throws IOException {        try (InputStream inputStream = new FileInputStream(excelFilePath);             XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {                        XSSFSheet sheet = workbook.getSheetAt(0);            File docFile = new File(wordFilePath);            try (XWPFDocument doc = new XWPFDocument()) {                for (Row row : sheet) {                    for (Cell cell : row) {                        String cellValue = getCellValueAsString(cell);                        XWPFParagraph p = doc.createParagraph();                        p.createRun().setText(cellValue);                    }                }                try (FileOutputStream out = new FileOutputStream(docFile)) {                    doc.write(out);                }            }        }    }     private static String getCellValueAsString(Cell cell) {        switch (cell.getCellTypeEnum()) {            case STRING:                return cell.getStringCellValue();            case NUMERIC:                return String.valueOf(cell.getNumericCellValue());            case BOOLEAN:                return String.valueOf(cell.getBooleanCellValue());            case FORMULA:                return cell.getCellFormula();            default:                return "";        }    }     public static void main(String[] args) {        String excelFilePath = "path/to/excel/file.xlsx";        String wordFilePath = "path/to/word/file.docx";        try {            convertExcelToWord(excelFilePath, wordFilePath);            System.out.println("Excel to Word conversion complete.");        } catch (IOException e) {            e.printStackTrace();        }    }}
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.apache.poi.xwpf.usermodel.*; import java.io.*; public class ExcelToWordConverter {    public static void convertExcelToWord(String excelFilePath, String wordFilePath) throws IOException {        try (InputStream inputStream = new FileInputStream(excelFilePath);             XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {                        XSSFSheet sheet = workbook.getSheetAt(0);            File docFile = new File(wordFilePath);            try (XWPFDocument doc = new XWPFDocument()) {                for (Row row : sheet) {                    for (Cell cell : row) {                        String cellValue = getCellValueAsString(cell);                        XWPFParagraph p = doc.createParagraph();                        p.createRun().setText(cellValue);                    }                }                try (FileOutputStream out = new FileOutputStream(docFile)) {                    doc.write(out);                }            }        }    }     private static String getCellValueAsString(Cell cell) {        switch (cell.getCellTypeEnum()) {            case STRING:                return cell.getStringCellValue();            case NUMERIC:                return String.valueOf(cell.getNumericCellValue());            case BOOLEAN:                return String.valueOf(cell.getBooleanCellValue());            case FORMULA:                return cell.getCellFormula();            default:                return "";        }    }     public static void main(String[] args) {        String excelFilePath = "path/to/excel/file.xlsx";        String wordFilePath = "path/to/word/file.docx";        try {            convertExcelToWord(excelFilePath, wordFilePath);            System.out.println("Excel to Word conversion complete.");        } catch (IOException e) {            e.printStackTrace();        }    }}
  • 1.
  • 2.

确保替换excelFilePathwordFilePath为你的Excel和Word文件的实际路径。这个简单的例子假设Excel文件只有一个工作表,并将每个单元格的内容转换为Word文档中的段落。根据你的需求,你可能需要添加更多的逻辑,比如处理不同的数据类型、样式等。