[]
        
(Showing Draft Content)

使用自定义解析规则导入CSV文件

GcExcel Java允许您使用自定义解析规则导入CSV文件,以获得特定格式的结果。例如,具有数字类型数据的单元格会自动解析为数字单元格。但是,在某些情况下,可能希望将其作为字符串加载。在这种情况下,使用GcExcel的默认解析器无法获得所需结果时,可以使用此功能定义自己的规则。

通过实现ICsvParser接口,使用Parse方法定义自定义解析规则,可以导入具有自定义解析规则的CSV文件。该方法接受CsvParseResultCsvParseContext类的对象作为参数。由于CsvParseResult类代表解析后的文本,因此可以将自定义解析规则生成的结果传递给CsvParseResult对象,并通过CSVParseresontext类指定目标单元格的位置和文本信息。实现ICsvParser接口后,将其作为CsvOpenOptions类的setParser方法的参数传递,以获得导入CSV文件的预期结果。

// Create CsvOpenOptions and custom parser rules.
CsvOpenOptions csvOpenOptions = new CsvOpenOptions();
csvOpenOptions.setParser(new CustomParser());

// Open csv file with option.
workbook.open(fileStream, csvOpenOptions);
public class CustomParser implements ICsvParser {
    @Override
    public void Parse(CsvParseResult csvParseResult, CsvParseContext csvParseContext) {
        if (csvParseContext.getText().startsWith("00")) {
            csvParseResult.setValue(csvParseContext.getText());
        }
        else if(csvParseResult.getNumberFormat().equals("m/d/yyyy h:mm")){
            csvParseResult.setNumberFormat("m/d/yyyy");
        }
    }
}