我正在使用JXL api。我想填写已经包含内容的excel表,例如:
123 321 12324
123 321 231
123 321 343
123 321 454
123 321 565
我试图在第五行之后写下一个值,但我不知道该怎么做。我只知道如果它是空的,如何创建和编写excel表。我知道如何阅读它。我想首先我必须阅读它,我的数组将包含表的值将帮助我选择表的最后一个值然后我将从那里开始写其他值。我有这些方法:
阅读:
arquivo = new File("C:\\Users\\maniceto\\Desktop\\arq.xls");
planilha = Workbook.getWorkbook(arquivo);
Sheet[] abas = planilha.getSheets();
aba = planilha.getSheet(0);
matriz = new String[aba.getRows()][aba.getColumns()];
Cell[] cel;
for (int i = 0; i < matriz.length; i++) {
cel = aba.getRow(i);
for (int j = 0; j < matriz[0].length; j++) {
matriz[i][j] = cel[j].getContents();
}
}
System.out.println("Lines " + matriz.length);
System.out.println("Columns " + matriz[0].length);
System.out.println("");
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[0].length; j++) {
System.out.print(matriz[i][j] + "\t");
}
System.out.println("");
}
写一个空的excel表:
WritableWorkbook workbookVazio = Workbook.createWorkbook(file);
WritableSheet sheet1 = workbookVazio.createSheet("First Sheet", 0);
TableModel model = table.getModel();
for (int i = 0; i < model.getColumnCount(); i++) {
Label column = new Label(i, 0, model.getColumnName(i));
sheet1.addCell(column);
}
int j = 0;
for (int i = 0; i < model.getRowCount(); i++) {
for (j = 0; j < model.getColumnCount(); j++) {
Label row = new Label(j, i + 1,
model.getValueAt(i, j).toString());
sheet1.addCell(row);
}
}
workbookVazio.write();
workbookVazio.close();
答案 0 :(得分:0)
正如rgettman在this question中所述,我还建议使用Apache POI来处理带有JAVA的Excel文件。
要使用POI附加值,您只需获取当前行数:
int rows = sheet.getPhysicalNumberOfRows();
POI已有详细记录,您可以在网上轻松找到几个代码示例。
答案 1 :(得分:0)
你可以试试像
这样的东西int lastRowNum = workbookVazio.getSheet("First Sheet").getLastRowNum();
int nextFreeRow = lastRowNum+1;
或者你可以使用Apache POI这是一个很好的教程 here.