POI操作Excel:隐藏、删除Excel中指定的Sheet
2014-09-03 12:11
1241 查看
使用POI操作Excel时如何隐藏、删除Excel中指定的Sheet呢?在POI的API中的HSSFWorkbook类提供了相关的方法,
(1)隐藏Sheet:
setSheetHidden
hidden, false otherwise
setSheetHidden
or
0 – visible / 1 – hidden / 2 – very hidden.
(2)删除Sheet:
removeSheetAt(int sheetId)
Java代码:
/**
* 隐藏指定的Sheet
* @param targetFile 目标文件
* @param sheetName Sheet名称
*/
public void hiddenSheet(String targetFile,String sheetName) {
try {
FileInputStream fis = new FileInputStream(targetFile);
HSSFWorkbook wb = new HSSFWorkbook(fis);
//隐藏Sheet
wb.setSheetHidden(wb.getSheetIndex(sheetName), 1);
this.fileWrite(targetFile, wb);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除指定的Sheet
* @param targetFile 目标文件
* @param sheetName Sheet名称
*/
public void deleteSheet(String targetFile,String sheetName) {
try {
FileInputStream fis = new FileInputStream(targetFile);
HSSFWorkbook wb = new HSSFWorkbook(fis);
//删除Sheet
wb.removeSheetAt(wb.getSheetIndex(sheetName));
this.fileWrite(targetFile, wb);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 写隐藏/删除后的Excel文件
* @param targetFile 目标文件
* @param wb Excel对象
* @throws Exception
*/
public void fileWrite(String targetFile,HSSFWorkbook wb) throws Exception{
FileOutputStream fileOut = new FileOutputStream(targetFile);
wb.write(fileOut);
fileOut.flush();
fileOut.close();
}
调用测试:
public static void main(String[] args) {
ExcelWrite ew = new ExcelWrite();
ew.deleteSheet("d:/test.xls", "template1");
ew.hiddenSheet("d:/test.xls", "template2");
}
隐藏、删除Sheet之后必须将HSSFWorkbook对象从新写成文件(覆盖原来的文件),这样所做的修改才起作用!
(1)隐藏Sheet:
setSheetHidden
(int sheetIx, boolean hidden);
sheetIx– the sheet index (0-based)
hidden– True to mark the sheet as
hidden, false otherwise
setSheetHidden
(int sheetIx, int hidden);
sheetIx– the sheet index (0-based)
hidden– one of the following
Workbookconstants:
Workbook.SHEET_STATE_VISIBLE,
Workbook.SHEET_STATE_HIDDEN,
or
Workbook.SHEET_STATE_VERY_HIDDEN.
0 – visible / 1 – hidden / 2 – very hidden.
(2)删除Sheet:
removeSheetAt(int sheetId)
index– of the sheet (0-based)
Java代码:
/**
* 隐藏指定的Sheet
* @param targetFile 目标文件
* @param sheetName Sheet名称
*/
public void hiddenSheet(String targetFile,String sheetName) {
try {
FileInputStream fis = new FileInputStream(targetFile);
HSSFWorkbook wb = new HSSFWorkbook(fis);
//隐藏Sheet
wb.setSheetHidden(wb.getSheetIndex(sheetName), 1);
this.fileWrite(targetFile, wb);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除指定的Sheet
* @param targetFile 目标文件
* @param sheetName Sheet名称
*/
public void deleteSheet(String targetFile,String sheetName) {
try {
FileInputStream fis = new FileInputStream(targetFile);
HSSFWorkbook wb = new HSSFWorkbook(fis);
//删除Sheet
wb.removeSheetAt(wb.getSheetIndex(sheetName));
this.fileWrite(targetFile, wb);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 写隐藏/删除后的Excel文件
* @param targetFile 目标文件
* @param wb Excel对象
* @throws Exception
*/
public void fileWrite(String targetFile,HSSFWorkbook wb) throws Exception{
FileOutputStream fileOut = new FileOutputStream(targetFile);
wb.write(fileOut);
fileOut.flush();
fileOut.close();
}
调用测试:
public static void main(String[] args) {
ExcelWrite ew = new ExcelWrite();
ew.deleteSheet("d:/test.xls", "template1");
ew.hiddenSheet("d:/test.xls", "template2");
}
隐藏、删除Sheet之后必须将HSSFWorkbook对象从新写成文件(覆盖原来的文件),这样所做的修改才起作用!
相关文章推荐
- POI操作Excel:隐藏、删除Excel中指定的Sheet
- 利用poi开源jar包操作Excel时删除行内容与直接删除行的区别
- poi操作excel,复制sheet,复制行,复制单元格
- poi中怎么像操作excel一样删除一行
- poi操作excel动态创建多个sheet
- POI操作隐藏的Excel
- poi导出excel用隐藏sheet方式封装下拉框(下拉选项值多的情况)
- C# 操作Excel图形——绘制、读取、隐藏、删除图形
- vc操作excel,包括合并单元格,新增,删除sheet,设置字体,底色(OLE/COM)
- 利用poi开源jar包操作Excel时删除行内容与直接删除行的区别
- poi操作excel,复制sheet,复制行,复制单元格 .
- 使用POI操作Excel:Sheet拷贝
- 屁孩博客:使用POI操作Excel:Sheet拷贝
- Poi操作保护工作表后指定区域内删除行列
- POI操作EXCEL
- poi操作excel
- java用org.apache.poi包操作excel
- 使用POI操作Excel文件(二)
- poi操作excel大数字编程科学计数的解决办法
- poi 操作excel , 合并单元格后加边框