0

我在处理一个项目时遇到了一个小问题。

我已经有一个excel文件,里面有一些表格。

每当我需要创建一个具有特定名称的新 Excel 文件表时,我需要检查是否已经有一个具有该名称的表,

如果是这样,

1.然后我需要删除它(从而删除任何旧信息),注意工作表的位置并在相同位置创建一个具有相同名称的新工作表

如果不

1.然后我需要创建一个新表

我坚持下去。有人可以提供一些见解/一些步骤来完成任务吗?我可以对 Apache POI 或任何其他 API 做同样的事情吗?

在此先感谢。我应该在执行此操作时使用 java 作为媒介。

4

4 回答 4

3

如果您使用的是 POI,则不会。通过 workbook.getNumberOfSheets() 处理 xls 文件中的工作表。

您可以使用常规 for 循环遍历它们并检查工作表名称,如果名称与工作表名称匹配,则可以使用 workbook.removeSheetAt(index) 将其删除。现在您可以创建具有相同名称和给定索引的新工作表。

希望这可以帮助。

于 2013-05-30T06:02:22.777 回答
0

apache-poi 可以管理它。

使用: HSSFWorkbook.createSheet(sheetName)创建新工作表。如果它抛出 java.lang.IllegalArgumentException 那么它已经存在,所以你可以找到并删除它:

HSSFWorkbook.getSheetIndex(sheetName)获取索引和HSSFWorkbook.removeSheetAt(index)。最后,您可以通过以下方式将新工作表移动到所需位置: HSSFWorkbook.setSheetOrder(sheetName, position)

于 2013-05-30T06:05:58.100 回答
0

xlsx4j是你可能想看的东西

点击这里获取更多信息

于 2013-05-30T06:02:41.813 回答
0

JExcelAPI 中的以下代码应该可以工作....

InputStream inp = new FileInputStream("workbook.xls");
//InputStream inp = new FileInputStream("workbook.xlsx");

Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt("sheet_name");
if(sheet != null)
{
 wb.removeSheet(index);
 //further functionality
}
else
{
  //code if sheet does not exists
}
于 2013-05-30T06:04:37.427 回答