POI生成文件时中文乱码问题

POI对默认对中文的支持不好,如果不做处理,中文在输出的文件中是乱码处理方法如下:

		    cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		    cell.setCellValue("武汉大学");

 

以上为近期项目中的问题,做个备忘

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用POI的`WorkbookFactory`类来打开一个Excel文件,然后可以调用`getSheetName(int)`方法来获取文件中的工作表名称。根据文件名称生成文件可以按照以下步骤进行: 1. 使用Java的`File`类创建一个新的文件对象,指定文件路径和名称; 2. 调用`WorkbookFactory.create(File file)`方法打开Excel文件; 3. 调用`getSheetName(int)`方法获取工作表名称; 4. 根据工作表名称生成新的文件名称; 5. 使用Java的`File`类创建一个新的文件对象,指定新的文件路径和名称; 6. 使用Java的`Files`类将原文件复制到新文件中; 7. 如果需要删除原文件,可以使用Java的`File`类调用`delete()`方法删除原文件。 下面是一个示例代码: ```java import java.io.File; import java.io.IOException; import java.nio.file.Files; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class PoiExample { public static void main(String[] args) throws IOException, InvalidFormatException { // 原文件路径和名称 File inputFile = new File("/path/to/input/file.xlsx"); // 新文件路径和名称 File outputFile = new File("/path/to/output/" + generateOutputFileName(inputFile.getName())); // 打开Excel文件 Workbook workbook = WorkbookFactory.create(inputFile); // 获取工作表名称 String sheetName = workbook.getSheetName(0); // 将原文件复制到新文件中 Files.copy(inputFile.toPath(), outputFile.toPath()); // 如果需要删除原文件,可以使用下面的代码 // inputFile.delete(); } private static String generateOutputFileName(String inputFileName) { // 假设文件名称为:example.xlsx // 获取文件扩展名 String fileExtension = inputFileName.substring(inputFileName.lastIndexOf('.')); // 获取文件名称,不包括扩展名 String fileNameWithoutExtension = inputFileName.substring(0, inputFileName.lastIndexOf('.')); // 生成新的文件名称,例如:example_sheet1.xlsx return fileNameWithoutExtension + "_" + "sheet1" + fileExtension; } } ``` 注:以上示例代码仅供参考,具体实现方式可能根据实际需求有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值