[]
使用此类可以配置打开 CSV 内容时的解释方式,包括列分隔符、行分隔符和引号字符、编码、数值和日期转换、公式识别、解析值样式以及自定义 ICsvParser。
此类的实例使用 OpenFileFormat.Csv 作为目标格式。
byte[] csvBytes = "Name,Value\r\nTest,001".getBytes(StandardCharsets.UTF_8);
CsvOpenOptions options = new CsvOpenOptions();
options.setColumnSeparator(",");
options.setConvertNumericData(false);
workbook.open(new ByteArrayInputStream(csvBytes), options);
Object cellValue = workbook.getWorksheets().get(0).getRange("B2").getValue();
final charfinal Stringfinal booleanfinal booleanfinal Stringfinal boolean"=" 开头的文本视为公式。final booleanfinal Stringfinal Stringfinal voidsetCellSeparator(char value) final voidsetColumnSeparator(String value) final voidsetConvertDateTimeData(boolean value) final voidsetConvertNumericData(boolean value) final voidsetEncoding(String value) final voidsetHasFormula(boolean value) "=" 开头的文本视为公式。voidsetParser(ICsvParser parser) final voidsetParseStyle(boolean value) final voidsetRowSeparator(String value) final voidsetSeparatorString(String value) setColumnSeparator(String) instead.getFileFormat, setFileFormatCsvOpenOptions 实例。此构造函数使用 CSV 文件格式初始化选项,并创建用于控制 CSV 解析行为的内部选项数据,例如数值和日期转换、分隔符以及编码。
byte[] csvBytes = "Name,Value\r\nTest,001".getBytes(StandardCharsets.UTF_8);
CsvOpenOptions options = new CsvOpenOptions();
options.setConvertNumericData(false);
options.setColumnSeparator(",");
workbook.open(new ByteArrayInputStream(csvBytes), options);
Object cellValue = workbook.getWorksheets().get(0).getRange("B2").getValue();
默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为数值数据的文本。
CsvOpenOptions options = new CsvOpenOptions();
options.setConvertNumericData(false);
boolean convertNumericData = options.getConvertNumericData();
workbook.open("path/to/source.csv", options);
true;否则为 false。默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为数值数据的文本。
CsvOpenOptions options = new CsvOpenOptions();
options.setConvertNumericData(false);
workbook.open("path/to/source.csv", options);
value - 如果在 CSV 导入期间将文本文件中的字符串转换为数值数据,则为 true;否则为 false。默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为日期或时间数据的文本。
CsvOpenOptions options = new CsvOpenOptions();
options.setConvertDateTimeData(false);
boolean convertDateTimeData = options.getConvertDateTimeData();
workbook.open("path/to/data.csv", options);
true;否则为 false。默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为日期或时间数据的文本。
CsvOpenOptions options = new CsvOpenOptions();
options.setConvertDateTimeData(false);
workbook.open("path/to/data.csv", options);
value - 如果在 CSV 导入期间将文本文件中的字符串转换为日期数据,则为 true;否则为 false。列分隔符决定打开 CSV 文件时每行中的字段如何拆分。默认值为 ","。使用 setColumnSeparator(String) 可在打开 CSV 文件前更改它。
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setColumnSeparator(",");
String separator = options.getColumnSeparator();
workbook.open("path/to/source.csv", options);
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setColumnSeparator(",");
workbook.open("path/to/source.csv", options);
value - 当前列分隔符字符串。行分隔符是用于分隔源 CSV 数据中记录的字符串分隔符。
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setRowSeparator("\r\n");
String rowSeparator = options.getRowSeparator();
workbook.open("path/to/source.csv", options);
行分隔符是用于分隔源 CSV 数据中记录的字符串分隔符。
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setRowSeparator("\r\n");
workbook.open("path/to/source.csv", options);
value - 用于 CSV 解析的行分隔符字符串。默认值为 '"'。
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setCellSeparator('\'');
char cellSeparator = options.getCellSeparator();
workbook.open("path/to/source.csv", options);
默认值为 '"'。
打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。
CsvOpenOptions options = new CsvOpenOptions();
options.setCellSeparator('\'');
workbook.open("path/to/source.csv", options);
value - 用于包裹 CSV 内容中带引号单元格文本的引号字符。setColumnSeparator(String) instead.此方法已弃用。请改用 setColumnSeparator(String)。
value - 列分隔符字符串。getColumnSeparator()。此方法已弃用。请改用 getColumnSeparator()。
默认值为 utf-8。
CsvOpenOptions options = new CsvOpenOptions();
options.setEncoding("utf-8");
String encoding = options.getEncoding();
workbook.open("path/to/source.csv", options);
默认值为 utf-8。
CsvOpenOptions options = new CsvOpenOptions();
options.setEncoding("utf-8");
workbook.open("path/to/source.csv", options);
value - 用于打开 CSV 文件的默认编码名称。默认值为 true。使用 setParseStyle(boolean) 可以控制解析期间是否应用样式信息。
CsvOpenOptions options = new CsvOpenOptions();
options.setParseStyle(false);
boolean parseStyle = options.getParseStyle();
workbook.open("path/to/source.csv", options);
true;否则为 false。
CsvOpenOptions options = new CsvOpenOptions();
options.setParseStyle(false);
workbook.open("path/to/source.csv", options);
value - 如果将样式应用于解析后的数值或日期/时间值,则为 true;否则为 false。"=" 开头的文本视为公式。默认值为 true。
CsvOpenOptions options = new CsvOpenOptions();
options.setHasFormula(false);
boolean hasFormula = options.getHasFormula();
workbook.open("path/to/data.csv", options);
true 表示打开 CSV 文件时将以 "=" 开头的文本视为公式;否则为 false。"=" 开头的文本视为公式。默认值为 true。
CsvOpenOptions options = new CsvOpenOptions();
options.setHasFormula(false);
workbook.open("path/to/data.csv", options);
value - true 表示打开 CSV 文件时将以 "=" 开头的文本视为公式;否则为 false。解析器会针对每个已解析的 CSV 单元格调用,可以检查原始文本,或修改导入值和数字格式。
CsvOpenOptions options = new CsvOpenOptions();
ICsvParser parser = new ICsvParser() {
public void Parse(CsvParseResult result, CsvParseContext context) {
result.setValue(context.getText());
}
};
options.setParser(parser);
ICsvParser customParser = options.getParser();
workbook.open("path/to/source.csv", options);
解析器会针对每个已解析的 CSV 单元格调用,可以检查原始文本,或修改导入值和数字格式。
CsvOpenOptions options = new CsvOpenOptions();
class LeadingZeroParser implements ICsvParser {
public void Parse(CsvParseResult csvParseResult, CsvParseContext context) {
if (context.getText().startsWith("00")) {
csvParseResult.setValue(context.getText());
}
}
}
options.setParser(new LeadingZeroParser());
workbook.open("path/to/data.csv", options);
parser - 打开 CSV 内容时使用的自定义解析器。
getColumnSeparator()。