Class SheetDataWriter

java.lang.Object
org.miaixz.bus.office.excel.writer.SheetDataWriter

public class SheetDataWriter extends Object
Sheet数据写出器 此对象只封装将数据写出到Sheet中,并不刷新到文件
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • SheetDataWriter

      public SheetDataWriter(org.apache.poi.ss.usermodel.Sheet sheet, ExcelWriteConfig config, StyleSet styleSet)
      构造
      Parameters:
      sheet - Sheet
      config - Excel配置
      styleSet - 样式表
  • Method Details

    • setStyleSet

      public SheetDataWriter setStyleSet(StyleSet styleSet)
      设置样式表
      Parameters:
      styleSet - 样式表
      Returns:
      this
    • setHeaderLocationCache

      public SheetDataWriter setHeaderLocationCache(Map<String,Integer> headerLocationCache)
      设置标题位置映射缓存
      Parameters:
      headerLocationCache - 标题位置映射缓存,key为表明名,value为列号
      Returns:
      this
    • writeHeader

      public SheetDataWriter writeHeader(int x, int y, int rowCount, RowGroup rowGroup)
      写出分组标题行
      Parameters:
      x - 开始的列,下标从0开始
      y - 开始的行,下标从0开始
      rowCount - 当前分组行所占行数,此数值为标题占用行数+子分组占用的最大行数,不确定传1
      rowGroup - 分组行
      Returns:
      this
    • writeRow

      public SheetDataWriter writeRow(Object rowBean, boolean isWriteKeyAsHead)
      写出一行,根据rowBean数据类型不同,写出情况如下:
       1、如果为Iterable,直接写出一行
       2、如果为Map,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
       3、如果为Bean,转为Map写出,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
       
      Parameters:
      rowBean - 写出的Bean
      isWriteKeyAsHead - 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
      Returns:
      this
      See Also:
    • writeRow

      public SheetDataWriter writeRow(Map<?,?> rowMap, boolean isWriteKeyAsHead)
      将一个Map写入到Excel,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values 如果rowMap为空(包括null),则写出空行
      Parameters:
      rowMap - 写出的Map,为空(包括null),则写出空行
      isWriteKeyAsHead - 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
      Returns:
      this
    • writeHeaderRow

      public SheetDataWriter writeHeaderRow(Iterable<?> rowData)
      写出一行标题数据,标题数据不替换别名 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 写出的起始行为当前行号,可使用getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
      Parameters:
      rowData - 一行的数据
      Returns:
      this
    • writeRow

      public SheetDataWriter writeRow(Iterable<?> rowData)
      写出一行数据 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 写出的起始行为当前行号,可使用getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
      Parameters:
      rowData - 一行的数据
      Returns:
      this
    • getCurrentRow

      public int getCurrentRow()
      获得当前行
      Returns:
      当前行
    • setCurrentRow

      public SheetDataWriter setCurrentRow(int rowIndex)
      设置当前所在行
      Parameters:
      rowIndex - 行号
      Returns:
      this
    • passAndGet

      public int passAndGet()
      跳过当前行,并获取下一行的行号
      Returns:
      this
    • passRowsAndGet

      public int passRowsAndGet(int rowNum)
      跳过指定行数,并获取当前行号
      Parameters:
      rowNum - 跳过的行数
      Returns:
      this
    • resetRow

      public SheetDataWriter resetRow()
      重置当前行为0
      Returns:
      this