alibaba/easyexcel

如何生成一个带有BOM头的csv文件

Open

#4,006 opened on Sep 25, 2024

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Java (7,599 forks)batch import
help wanted

Repository metrics

Stars
 (33,728 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

public static Pair<ExcelWriter, WriteSheet> buildCsvWriter(File file, String sheetName, Charset charset) { ExcelWriter excelWriter = EasyExcel.write(file).charset(charset).build(); WriteSheet writeSheet = new WriteSheet(); writeSheet.setSheetName(sheetName);

    return Pair.of(excelWriter, writeSheet);
}

再生成文件写入句柄的时候,设置了utf-8编码格式,但是生成文件无法带bom头, tempFile = File.createTempFile(SESSION_DETAIL_FILE_NAME + System.currentTimeMillis(), ".csv",dir); fos = new FileOutputStream(tempFile.getPath()); fos.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF}); fos.flush(); 在获取句柄前单独写入也不行 会话明细17272333965255218563994055952976.csv: Unicode text, UTF-8 text, with CRLF line terminators

所以我该如何生成一个带有bom头的csv文件呢?

Contributor guide