Java 导出 Excel 乱码通常是由于字符编码设置不正确导致的。以下是解决此问题的详细步骤和相关概念:
.xls
和 .xlsx
。.xls
是二进制格式,而 .xlsx
是基于 XML 的压缩格式。以下是使用 Apache POI 库导出 Excel 并解决乱码问题的示例代码:
首先,确保你的项目中包含了 Apache POI 的依赖。如果你使用 Maven,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
以下是一个简单的示例代码,展示了如何使用 Apache POI 导出 Excel 并设置正确的字符编码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelExporter {
public static void main(String[] args) {
// 创建一个新的工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sample Sheet");
// 创建一行并添加单元格
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("测试文本");
// 设置字符编码为 UTF-8
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
workbook.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
// 关闭工作簿
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileOutputStream
时显式指定字符编码为 UTF-8。FileOutputStream
时指定正确的字符编码。通过以上步骤和代码示例,你应该能够解决 Java 导出 Excel 乱码的问题。