[]
        
首页
开发者学堂
文档
论坛
市场
生态机会
活动
立即试用
(Showing Draft Content)

CsvOpenOptions

Class CsvOpenOptions

java.lang.Object
com.grapecity.documents.excel.OpenOptionsBase
com.grapecity.documents.excel.CsvOpenOptions

public class CsvOpenOptions extends OpenOptionsBase
表示打开 CSV 文件的选项。

使用此类可以配置打开 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();
 
  • Constructor Details

    • CsvOpenOptions

      public CsvOpenOptions()
      创建用于打开 CSV 文件的新 CsvOpenOptions 实例。

      此构造函数使用 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();
       
  • Method Details

    • getConvertNumericData

      public final boolean getConvertNumericData()
      获取一个值,指示打开 CSV 文本文件时是否将其中的字符串转换为数值数据。

      默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为数值数据的文本。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setConvertNumericData(false);
       boolean convertNumericData = options.getConvertNumericData();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      如果在 CSV 导入期间将文本文件中的字符串转换为数值数据,则为 true;否则为 false。
    • setConvertNumericData

      public final void setConvertNumericData(boolean value)
      设置一个值,指示打开 CSV 文本文件时是否将其中的字符串转换为数值数据。

      默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为数值数据的文本。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setConvertNumericData(false);
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 如果在 CSV 导入期间将文本文件中的字符串转换为数值数据,则为 true;否则为 false。
    • getConvertDateTimeData

      public final boolean getConvertDateTimeData()
      获取一个值,指示打开 CSV 文本文件时是否将其中的字符串转换为日期数据。

      默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为日期或时间数据的文本。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setConvertDateTimeData(false);
       boolean convertDateTimeData = options.getConvertDateTimeData();
       workbook.open("path/to/data.csv", options);
       
      Returns:
      如果在 CSV 导入期间将文本文件中的字符串转换为日期数据,则为 true;否则为 false。
    • setConvertDateTimeData

      public final void setConvertDateTimeData(boolean value)
      设置一个值,指示打开 CSV 文本文件时是否将其中的字符串转换为日期数据。

      默认值为 true。当此属性为 true 时,CSV 导入期间会转换可识别为日期或时间数据的文本。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setConvertDateTimeData(false);
       workbook.open("path/to/data.csv", options);
       
      Parameters:
      value - 如果在 CSV 导入期间将文本文件中的字符串转换为日期数据,则为 true;否则为 false。
    • getColumnSeparator

      public final String getColumnSeparator()
      获取打开 CSV 数据时使用的列分隔符。

      列分隔符决定打开 CSV 文件时每行中的字段如何拆分。默认值为 ","。使用 setColumnSeparator(String) 可在打开 CSV 文件前更改它。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setColumnSeparator(",");
       String separator = options.getColumnSeparator();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      当前列分隔符字符串。
    • setColumnSeparator

      public final void setColumnSeparator(String value)
      设置打开 CSV 数据时使用的列分隔符。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setColumnSeparator(",");
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 当前列分隔符字符串。
    • getRowSeparator

      public final String getRowSeparator()
      获取打开 CSV 文件时使用的行分隔符。

      行分隔符是用于分隔源 CSV 数据中记录的字符串分隔符。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setRowSeparator("\r\n");
       String rowSeparator = options.getRowSeparator();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      用于 CSV 解析的行分隔符字符串。
    • setRowSeparator

      public final void setRowSeparator(String value)
      设置打开 CSV 文件时使用的行分隔符。

      行分隔符是用于分隔源 CSV 数据中记录的字符串分隔符。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setRowSeparator("\r\n");
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 用于 CSV 解析的行分隔符字符串。
    • getCellSeparator

      public final char getCellSeparator()
      获取用于包裹 CSV 内容中带引号单元格文本的引号字符。

      默认值为 '"'。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setCellSeparator('\'');
       char cellSeparator = options.getCellSeparator();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      用于包裹 CSV 内容中带引号单元格文本的引号字符。
    • setCellSeparator

      public final void setCellSeparator(char value)
      设置用于包裹 CSV 内容中带引号单元格文本的引号字符。

      默认值为 '"'。

      打开 CSV 内容时,列分隔符、行分隔符和引号字符必须互不相同,并且不能互相包含。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setCellSeparator('\'');
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 用于包裹 CSV 内容中带引号单元格文本的引号字符。
    • setSeparatorString

      @Deprecated public final void setSeparatorString(String value)
      Deprecated.
      设置打开 CSV 文件时使用的列分隔符字符串。

      此方法已弃用。请改用 setColumnSeparator(String)。

      Parameters:
      value - 列分隔符字符串。
    • getSeparatorString

      @Deprecated public final String getSeparatorString()
      Deprecated.
      获取打开 CSV 文件时使用的列分隔符字符串。

      此方法已弃用。请改用 getColumnSeparator()。

      Returns:
      列分隔符字符串。
    • getEncoding

      public final String getEncoding()
      获取用于打开 CSV 文件的默认编码。

      默认值为 utf-8。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setEncoding("utf-8");
       String encoding = options.getEncoding();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      用于打开 CSV 文件的默认编码名称。
    • setEncoding

      public final void setEncoding(String value)
      设置用于打开 CSV 文件的默认编码。

      默认值为 utf-8。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setEncoding("utf-8");
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 用于打开 CSV 文件的默认编码名称。
    • getParseStyle

      public final boolean getParseStyle()
      获取将字符串值转换为数字或日期/时间值时是否将样式应用于解析后的值。

      默认值为 true。使用 setParseStyle(boolean) 可以控制解析期间是否应用样式信息。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setParseStyle(false);
       boolean parseStyle = options.getParseStyle();
       workbook.open("path/to/source.csv", options);
       
      Returns:
      如果将样式应用于解析后的数值或日期/时间值,则为 true;否则为 false。
    • setParseStyle

      public final void setParseStyle(boolean value)
      设置将字符串值转换为数字或日期/时间值时是否将样式应用于解析后的值。
      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setParseStyle(false);
       workbook.open("path/to/source.csv", options);
       
      Parameters:
      value - 如果将样式应用于解析后的数值或日期/时间值,则为 true;否则为 false。
    • getHasFormula

      public final boolean getHasFormula()
      获取一个值,指示打开 CSV 文件时是否将以 "=" 开头的文本视为公式。

      默认值为 true。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setHasFormula(false);
       boolean hasFormula = options.getHasFormula();
       workbook.open("path/to/data.csv", options);
       
      Returns:
      true 表示打开 CSV 文件时将以 "=" 开头的文本视为公式;否则为 false。
    • setHasFormula

      public final void setHasFormula(boolean value)
      设置一个值,指示打开 CSV 文件时是否将以 "=" 开头的文本视为公式。

      默认值为 true。

      
       CsvOpenOptions options = new CsvOpenOptions();
       options.setHasFormula(false);
       workbook.open("path/to/data.csv", options);
       
      Parameters:
      value - true 表示打开 CSV 文件时将以 "=" 开头的文本视为公式;否则为 false。
    • getParser

      public ICsvParser getParser()
      获取打开 CSV 内容时使用的自定义解析器。

      解析器会针对每个已解析的 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);
       
      Returns:
      打开 CSV 内容时使用的自定义解析器。
    • setParser

      public void setParser(ICsvParser parser)
      设置打开 CSV 数据时使用的自定义解析器。

      解析器会针对每个已解析的 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);
       
      Parameters:
      parser - 打开 CSV 内容时使用的自定义解析器。