Class BigExcelWriter

All Implemented Interfaces:
Closeable, AutoCloseable

public class BigExcelWriter extends ExcelWriter
大数据量Excel写出
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Constructor Details

    • BigExcelWriter

      public BigExcelWriter()
      构造,默认生成xlsx格式的Excel文件 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File)方法自定义写出的文件,然后调用ExcelWriter.flush()方法写出到文件
    • BigExcelWriter

      public BigExcelWriter(int rowAccessWindowSize)
      构造 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,需要调用ExcelWriter.flush(File) 写出到文件
      Parameters:
      rowAccessWindowSize - 在内存中的行数
    • BigExcelWriter

      public BigExcelWriter(String destFilePath)
      构造,默认写出到第一个sheet,第一个sheet名为sheet1
      Parameters:
      destFilePath - 目标文件路径,可以不存在
    • BigExcelWriter

      public BigExcelWriter(int rowAccessWindowSize, String sheetName)
      构造 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,需要调用ExcelWriter.flush(File) 写出到文件
      Parameters:
      rowAccessWindowSize - 在内存中的行数
      sheetName - sheet名,第一个sheet名并写出到此sheet,例如sheet1
    • BigExcelWriter

      public BigExcelWriter(String destFilePath, String sheetName)
      构造
      Parameters:
      destFilePath - 目标文件路径,可以不存在
      sheetName - sheet名,第一个sheet名并写出到此sheet,例如sheet1
    • BigExcelWriter

      public BigExcelWriter(File destFile)
      构造,默认写出到第一个sheet,第一个sheet名为sheet1
      Parameters:
      destFile - 目标文件,可以不存在
    • BigExcelWriter

      public BigExcelWriter(File destFile, String sheetName)
      构造
      Parameters:
      destFile - 目标文件,可以不存在
      sheetName - sheet名,做为第一个sheet名并写出到此sheet,例如sheet1
    • BigExcelWriter

      public BigExcelWriter(org.apache.poi.xssf.streaming.SXSSFWorkbook workbook, String sheetName)
      构造 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File)方法自定义写出的文件,然后调用ExcelWriter.flush()方法写出到文件
      Parameters:
      workbook - SXSSFWorkbook
      sheetName - sheet名,做为第一个sheet名并写出到此sheet,例如sheet1
    • BigExcelWriter

      public BigExcelWriter(org.apache.poi.ss.usermodel.Sheet sheet)
      构造 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,还需调用ExcelWriter.setDestFile(File)方法自定义写出的文件,然后调用ExcelWriter.flush()方法写出到文件
      Parameters:
      sheet - Sheet
    • BigExcelWriter

      public BigExcelWriter(int rowAccessWindowSize, boolean compressTmpFiles, boolean useSharedStringsTable, String sheetName)
      构造 此构造不传入写出的Excel文件路径,只能调用ExcelWriter.flush(java.io.OutputStream)方法写出到流 若写出到文件,需要调用ExcelWriter.flush(File) 写出到文件
      Parameters:
      rowAccessWindowSize - 在内存中的行数,-1表示不限制,此时需要手动刷出
      compressTmpFiles - 是否使用Gzip压缩临时文件
      useSharedStringsTable - 是否使用共享字符串表,一般大量重复字符串时开启可节省内存
      sheetName - 写出的sheet名称
  • Method Details

    • autoSizeColumn

      public BigExcelWriter autoSizeColumn(int columnIndex)
      Description copied from class: ExcelWriter
      设置某列为自动宽度,不考虑合并单元格 此方法必须在指定列数据完全写出后调用才有效
      Overrides:
      autoSizeColumn in class ExcelWriter
      Parameters:
      columnIndex - 第几列,从0计数
      Returns:
      this
    • autoSizeColumnAll

      public BigExcelWriter autoSizeColumnAll()
      Description copied from class: ExcelWriter
      设置所有列为自动宽度,不考虑合并单元格 此方法必须在指定列数据完全写出后调用才有效 列数计算是通过第一行计算的
      Overrides:
      autoSizeColumnAll in class ExcelWriter
      Returns:
      this
    • flush

      public ExcelWriter flush(OutputStream out, boolean isCloseOut)
      Description copied from class: ExcelWriter
      将Excel Workbook刷出到输出流
      Overrides:
      flush in class ExcelWriter
      Parameters:
      out - 输出流
      isCloseOut - 是否关闭输出流
      Returns:
      this
    • close

      public void close()
      Description copied from class: ExcelWriter
      关闭工作簿 如果用户设定了目标文件,先写出目标文件后给关闭工作簿
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class ExcelWriter