EasyExcel 如何指定CSV 读取时候的分隔符
用户问题 :
EasyExcel 如何指定CSV 读取时候的分隔符
专家官方解答 :
在EasyExcel中,指定CSV读取时的分隔符可以通过以下步骤进行:
-
分析问题原因:根据你的需求,CSV文件可能使用了非默认的分隔符(如分号
;
而非逗号,
)。EasyExcel默认使用逗号作为CSV文件的分隔符,因此需要手动设置以适应特定的文件格式。 -
指定读取CSV的分隔符:
- 首先,创建并初始化
ExcelReader
对象,指向你的CSV文件路径。 - 然后,通过检查
ReadWorkbookHolder
实例来判断是否处理的是CSV文件。 - 接着,将
CsvFormat
的分隔符设置为你需要的字符(例如;
)。 - 最后,执行读取操作。
- 首先,创建并初始化
具体代码示例(源自提供的知识内容):
String fileName = "你的CSV文件路径.csv";
try (ExcelReader excelReader = EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).build()) {
ReadWorkbookHolder readWorkbookHolder = excelReader.analysisContext().readWorkbookHolder();
// 判断只有csv才需要修改配置信息
if (readWorkbookHolder instanceof CsvReadWorkbookHolder) {
CsvReadWorkbookHolder csvReadWorkbookHolder = (CsvReadWorkbookHolder)readWorkbookHolder;
// 底层读取csv用的是apache的common-csv,所以设置CsvFormat即可
csvReadWorkbookHolder.setCsvFormat(csvReadWorkbookHolder.getCsvFormat().withDelimiter(';')); // 这里设置为分号作为分隔符
}
ReadSheet readSheet = EasyExcel.readSheet(0).build();
excelReader.read(readSheet);
}
解释:上述代码段首先尝试读取指定路径的CSV文件,并通过条件判断确保仅对CSV文件进行分隔符的修改。通过.withDelimiter(';')
方法,我们将读取时使用的分隔符从默认的逗号改为了分号。这样,EasyExcel就能正确地识别CSV文件中的字段边界,即使它们不是用逗号分隔的。
以上步骤和代码示例应该能够帮助你解决如何在EasyExcel中指定CSV读取时的分隔符问题。
---------------参考链接 :
*专家经验:EasyExcel 如何指定CSV 读取时候的分隔符
*专家经验:EasyExcel csv读写的支持
*专家经验:EasyExcel介绍
---------------答疑服务说明:
本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,在页面的右下的浮窗”专家答疑“。您也可以访问 : 全局专家答疑 。 咨询其他产品的的问题
反馈
如问答有错漏,欢迎点:差评给我们反馈。