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

DataImportOptions

Class DataImportOptions

java.lang.Object
com.grapecity.documents.excel.DataImportOptions

public class DataImportOptions extends Object
表示控制如何将数据导入区域的选项。

将此类与 IRange.importData(Object,DataImportOptions) 配合使用,可以配置空间不足的处理方式、是否包含列标题、导入哪些列,以及如何解析自动生成列的项类型等行为。


 Map<String, Object> item = new LinkedHashMap<>();
 item.put("Name", "Alice");
 item.put("City", "Seattle");
 Map<String, Object>[] items = new Map[] {item};
 DataImportOptions options = new DataImportOptions();
 worksheet.getRange("A1").importData(items, options);
 
  • Constructor Details

    • DataImportOptions

      public DataImportOptions()
  • Method Details

    • getColumnsSelector

      public Function<Object,Object> getColumnsSelector()
      获取列选择器。它用于选择要导入的列。默认行为是自动生成所有列。
      Returns:
      Function 接受 Iterable、数组或 ResultSet 以选择列。
      • 返回 int[](Kotlin 中为 IntArray),通过索引为指定的 ResultSet 选择列。
      • 返回 String[],通过名称为指定的 ResultSet、字典或自定义对象选择列。
      • 返回属性 getter 数组 Function[](其中 T 是集合的元素类型,R 是属性类型),使用自定义列 getter 选择列。在这种情况下, getIncludeColumnsHeader() 必须为 false。否则,将抛出异常,因为无法得知列名。
      • 返回命名属性 getter 数组 AbstractMap.SimpleEntry[](其中 K 是列名 String,V 是属性 getter Function;对于每个 Function,T 是集合的元素类型,R 是属性类型),使用自定义列名和自定义列 getter 选择列。在这种情况下, getIncludeColumnsHeader() 应为 true。否则,将忽略列名。
      
       DataImportOptions options = new DataImportOptions();
       options.setColumnsSelector(source -> new String[] {"Name", "City"});
       Function<Object, Object> selector = options.getColumnsSelector();
       
    • setColumnsSelector

      public void setColumnsSelector(Function<Object,Object> value)
      设置列选择器。

      选择使用 IRange.importData(Object,DataImportOptions) 时导入哪些列。如果未指定选择器,则自动生成所有列。

      选择器函数接收传递给 importData 的源对象,并返回要导入的列。根据源类型,该函数可以返回列索引、列名或自定义列定义。

      
       Map<String, Object> item = new LinkedHashMap<>();
       item.put("Name", "Alice");
       item.put("Age", 30);
       item.put("City", "Seattle");
       Map<String, Object>[] items = new Map[] {item};
       DataImportOptions options = new DataImportOptions();
       options.setColumnsSelector(source -> new String[] {"Name", "City"});
       worksheet.getRange("A1").importData(items, options);
       
      Parameters:
      value - 选择器函数,它接受提供给IRange.importData(Object,DataImportOptions) 的源对象,并返回要导入的列。返回 int[] 可按索引选择列,返回 String[]可按名称选择列,返回 Function[] 可提供不带列名的自定义值选择器(在这种情况下, getIncludeColumnsHeader() 必须为false),或返回 AbstractMap.SimpleEntry[] 可提供自定义列名以及值选择器(在这种情况下,getIncludeColumnsHeader() 应为 true;否则,将忽略自定义列名)。 null 使用默认列生成行为。
    • getInsufficientSpaceHandling

      public InsufficientSpaceHandling getInsufficientSpaceHandling()
      获取导入数据时如何处理空间不足。

      此设置控制当目标区域没有足够单元格容纳所有导入数据时,导入操作的行为。默认值为 InsufficientSpaceHandling.Overwrite。

      
       DataImportOptions options = new DataImportOptions();
       InsufficientSpaceHandling handling = options.getInsufficientSpaceHandling();
       
      Returns:
      数据导入期间使用的空间不足处理模式。
    • setInsufficientSpaceHandling

      public void setInsufficientSpaceHandling(InsufficientSpaceHandling value)
      设置导入数据时如何处理空间不足的情况。

      此设置控制当目标区域没有足够的单元格容纳所有导入数据时导入操作的行为。默认值为 InsufficientSpaceHandling.Overwrite。

      
       DataImportOptions options = new DataImportOptions();
       options.setInsufficientSpaceHandling(InsufficientSpaceHandling.Truncate);
       
      Parameters:
      value - 数据导入期间要使用的空间不足处理模式。默认值为 InsufficientSpaceHandling.Overwrite。
    • getIncludeColumnsHeader

      public boolean getIncludeColumnsHeader()
      获取导入数据时是否将列标题作为第一行包含在内。

      此选项控制导入的表格数据是否在数据行之前写入标题行。默认值为 true。

      
       DataImportOptions options = new DataImportOptions();
       boolean includeHeaders = options.getIncludeColumnsHeader();
       
      Returns:
      如果导入数据时将列标题作为第一行包含在内,则为 true;否则为 false。默认值为 true。
    • setIncludeColumnsHeader

      public void setIncludeColumnsHeader(boolean value)
      设置导入数据时是否将列标题作为第一行包含在内。

      此选项控制导入的表格数据是否在数据行之前写入标题行。默认值为 true。

      
       DataImportOptions options = new DataImportOptions();
       options.setIncludeColumnsHeader(false);
       
      Parameters:
      value - 如果导入数据时将列标题作为第一行包含在内,则为 true;否则为 false。默认值为 true。
    • getItemTypeProvider

      public Function<Object,Class<?>> getItemTypeProvider()
      获取项类型提供者。

      项类型提供者从指定的 Iterable 或数组获取项类型。导入数据时,该类型用于生成列。如果未设置自定义提供者,默认行为是先尝试从数组获取项类型,然后尝试从第一项获取类型。

      
       DataImportOptions options = new DataImportOptions();
       options.setItemTypeProvider(source -> Object.class);
       Function<Object, Class<?>> provider = options.getItemTypeProvider();
       
      Returns:
      Function,它接受用于获取项类型的 Iterable 或数组,并返回项 Class。如果尚未设置自定义项类型提供者,则返回 null。
    • setItemTypeProvider

      public void setItemTypeProvider(Function<Object,Class<?>> value)
      设置项类型提供者。

      项类型提供者从指定的 Iterable 或数组获取项类型。导入数据时,该类型用于生成列。如果未设置自定义提供者,默认行为是先尝试从数组获取项类型,然后尝试从第一项获取类型。

      
       DataImportOptions options = new DataImportOptions();
       options.setItemTypeProvider(source -> Object.class);
       
      Parameters:
      value - Function,它接受用于获取项类型的 Iterable 或数组,并返回项 Class。设置为 null 可恢复默认的项类型解析行为。