我正在尝试通过网络表格将数据写入excel
使用空白数据创建起始行,最后一行填充数据,最后一个索引值
即使 directory = "c:\test\"
fileName = Dir(directory & "*.xl??")
Do While fileName <> ""
'Put Code From For Loop here.
Loop
中存在数据,其他行也不会被数据填充。
Arraylist
答案 0 :(得分:1)
您应该将此行添加到for循环
中 HSSFRow row = sheet.createRow(a++);
答案 1 :(得分:0)
在执行此操作时,每次调用该函数时都会创建一个新工作簿,并且最终会删除之前的工作簿。因此,您只能获得最后一次通话的结果。
如果你想在每次调用时添加一行,就这样做,你需要将行号和工作簿作为类变量。您还需要抓住已创建的工作表以附加到工作表。或者你也要删除它。
public static void main(String[] args) {
try {
write_Excel("myFile.xls","sheetName",
Arrays.asList("value 1", "value 2", "value 3"));
write_Excel("myFile.xls","sheetName",
Arrays.asList("value 4", "value 5", "value 6"));
} catch(IOException e) {
e.printStackTrace();
}
}
private static int newRowIndex = 0;
private static HSSFWorkbook workbook = new HSSFWorkbook();
public static void write_Excel(String fileName, String sheetName, List<String> dataToWrite) throws IOException {
FileOutputStream fos = new FileOutputStream(fileName);
// open or create sheet
HSSFSheet sheet = workbook.getSheet(sheetName) != null ?
workbook.getSheet(sheetName) :
workbook.createSheet(sheetName);
// create a new row
HSSFRow row = sheet.createRow(newRowIndex ++);
// write your data in the new row
for (int colIndex = 0; colIndex < dataToWrite.size(); colIndex++) {
HSSFCell cell = row.createCell(colIndex);
cell.setCellValue(new HSSFRichTextString(dataToWrite.get(colIndex)));
}
workbook.write(fos);
fos.flush();
fos.close();
}