0
とgroupRowsを作成https://poi.apache.org/apidocs/org/apache/poi/xssf/streaming/SXSSFSheet.html#groupRow(int,%20int)は、読取SXSSFWorkbook
それはグループがウィンドウサイズ内に作成されるべきであることが、この最小の例は、で554行に行2からgroupRowを生成
とgroupRowsを作成https://poi.apache.org/apidocs/org/apache/poi/xssf/streaming/SXSSFSheet.html#groupRow(int,%20int)は、読取SXSSFWorkbook
それはグループがウィンドウサイズ内に作成されるべきであることが、この最小の例は、で554行に行2からgroupRowを生成
ウィンドウサイズを乗り越えるグループを作成する方法を述べています
groupRow(1,n)
groupRow(n+1, m)
:キーがあることである200
public static final int ROWS=1000;
public static final int WINDOW_SIZE=100;
//public static final int WINDOW_SIZE=1000;
public static void main(String args[]) throws FileNotFoundException, IOException{
File outputFile = new File("testFile-actual.xlsx");
SXSSFWorkbook sworkbook = new SXSSFWorkbook(WINDOW_SIZE);
creatXLSX(outputFile, sworkbook);
File expectedoutputFile = new File("testFile-expected.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook();
creatXLSX(expectedoutputFile, workbook);
}
private static void creatXLSX(File outputFile, Workbook workbook)
throws IOException, FileNotFoundException {
Sheet sheet = workbook.createSheet();
int posFirstRow = 1;
boolean addgroup = true;
for(int i = 0; i < ROWS; i++) {
Row row = sheet.createRow(i);
Cell cell = row.createCell(0);
cell.setCellValue(i);
if (addgroup && i % WINDOW_SIZE == 0) {
sheet.groupRow(posFirstRow, i);
posFirstRow = i+1;
}
if (i == 556) {
sheet.groupRow(posFirstRow, 553);
posFirstRow = 556;
addgroup = false;
}
}
workbook.write(new FileOutputStream(outputFile));
}
のウィンドウサイズと1000行のエクセル
二つのグループに参加し、ここで
groupRow(1,m)
と同じ生成