java poi exce 移动_JAVA_POI 操作Excel

转自: http://rensanning.iteye.com/blog/1538591#

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。

如果处理.xlsx、docx、pptx的话可以试试Docx4j 。

Docx4j is a Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files.

HSSF - 提供读写Microsoft Excel XLS格式档案的功能。

XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。

HWPF - 提供读写Microsoft Word DOC格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读Microsoft Visio格式档案的功能。

HPBF - 提供读Microsoft Publisher格式档案的功能。

HSMF - 提供读Microsoft Outlook格式档案的功能。

Java代码  b8742c842e9d80368e362da4b137f717.png

//生成Workbook

HSSFWorkbook wb = new HSSFWorkbook();

//添加Worksheet(不添加sheet时生成的xls文件打开时会报错)

@SuppressWarnings("unused")

Sheet sheet1 = wb.createSheet();

@SuppressWarnings("unused")

Sheet sheet2 = wb.createSheet();

@SuppressWarnings("unused")

Sheet sheet3 = wb.createSheet("new sheet");

@SuppressWarnings("unused")

Sheet sheet4 = wb.createSheet("rensanning");

//保存为Excel文件

FileOutputStream out = null;

try {

out = new FileOutputStream("c:\\text.xls");

wb.write(out);

} catch (IOException e) {

System.out.println(e.toString());

} finally {

try {

out.close();

} catch (IOException e) {

System.out.println(e.toString());

}

}

2、生成Workbook OOXML形式(.xlsx)

Java代码  b8742c842e9d80368e362da4b137f717.png

//生成Workbook

XSSFWorkbook wb = new XSSFWorkbook();

//......

3、打开Workbook

Java代码  b8742c842e9d80368e362da4b137f717.png

//方法一:使用WorkbookFactory

FileInputStream in = null;

Workbook wb = null;

try {

in = new FileInputStream(TEST_WORKBOOK_NAME);

wb = WorkbookFactory.create(in);

} catch (IOException e) {

System.out.println(e.toString());

} catch (InvalidFormatException e) {

System.out.println(e.toString());

} finally {

try {

in.close();

} catch (IOException e) {

System.out.println(e.toString());

}

}

System.out.println("====================Workbook====================");

System.out.println("Number of Sheets:" + wb.getNumberOfSheets());

System.out.println("Sheet3's name:" + wb.getSheetName(3));

System.out.println();

//方法二:使用POIFSFileSystem

try {

in = new FileInputStream(TEST_WORKBOOK_NAME);

POIFSFileSystem fs = new POIFSFileSystem(in);

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

System.out.println(e.toString());

} finally {

try {

in.close();

} catch (IOException e) {

System.out.println(e.toString());

}

}

System.out.println("====================Workbook====================");

System.out.println("Number of Sheets:" + wb.getNumberOfSheets());

System.out.println("Sheet3's name:" + wb.getSheetName(3));

System.out.println();

4、打开加密的Workbook(读加密)

Java代码  b8742c842e9d80368e362da4b137f717.png

FileInputStream input = new FileInputStream(TEST_WORKBOOK_NAME_ENCRYPTED);

BufferedInputStream binput = new BufferedInputStream(input);

POIFSFileSystem poifs = new POIFSFileSystem(binput);

Biff8EncryptionKey.setCurrentUserPassword(TEST_WORKBOOK_PASSWORD);

HSSFWorkbook wb = new HSSFWorkbook(poifs);

System.out.println("====================EncryptedWorkbook====================");

System.out.println("Number of Sheets:" + wb.getNumberOfSheets());

System.out.println("Sheet0's name:" + wb.getSheetName(0));

System.out.println();

5、追加Sheet

Java代码  b8742c842e9d80368e362da4b137f717.png

Sheet sheet = wb.createSheet("append sheet");

6、复制Sheet

Java代码  b8742c842e9d80368e362da4b137f717.png

wb.cloneSheet(1);

7、修改Sheet名称

Java代码  b8742c842e9d80368e362da4b137f717.png

wb.setSheetName(i, "SheetName new");

8、删除Sheet

Java代码  b8742c842e9d80368e362da4b137f717.png

wb.removeSheetAt(1);

9、设置下部Sheet名的Tab的第一个可见Tab

Java代码  b8742c842e9d80368e362da4b137f717.png

//设置下部Sheet名的Tab的第一个可见Tab(以左的Sheet看不见)

wb.setFirstVisibleTab(2);

10、调整Sheet顺序

Java代码  b8742c842e9d80368e362da4b137f717.png

wb.setSheetOrder("SheetName3", 1);

wb.setSheetOrder(wb.getSheetName(4), 0);

11、设置当前Sheet

t.setActiveSheet();

Java代码  b8742c842e9d80368e362da4b137f717.png

//设置当前Sheet

wb.setActiveSheet(wb.getNumberOfSheets() - 1);

//(Excel的当前Sheet被设置,需要结合setSelected使用,不然下部Sheet名的Tab还是默认为第一个)

//(需要选择多个Sheet的话,每个Sheet调用setSelected(true)即可)

wb.getSheetAt(wb.getNumberOfSheets() - 1).setSelected(true);

12、固定窗口

Java代码  b8742c842e9d80368e362da4b137f717.png

wb.getSheet("SheetName4").createFreezePane(2, 2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值