Java操作excel

一、POI和Jxl介绍
Apache POI是Apache旗下的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。其功能包括五种有:HSSF,XSSF,HWPF,HSLF,HDGF,今天我使用的是HSSF。
Jxl是韩国人写的java操作excel的工具 ,但是相比POI来说稍逊色了点,毕竟Apache旗下的产品一向都很棒,具体用啥根据自己的喜好自己选择吧。
二、创建
首先我们导入所需的包,下载地址为:http://poi.apache.org/download.html#POI-3.17
现在创建一个工作簿、sheet页和单元格:
package com.ncepu.test;

import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class Demo3 {
public static void main(String[] args) throws Exception {
Workbook workbook=new HSSFWorkbook();
Sheet sheet=workbook.createSheet(“第一个sheet页”);
Row row=sheet.createRow(0);//创建第一行
Cell cell=row.createCell(0);//创建单元格第一列
cell.setCellValue(1);//给第一列赋值

row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(“这是一个字符串”);//创建一个单元格,第三列为String类型
row.createCell(3).setCellValue(true);

FileOutputStream fileOutputStream=new FileOutputStream(“F:\Demo1.xls”);
workbook.write(fileOutputStream);
fileOutputStream.close();
}
}
结果就是文中给出的,我就不单独贴出来了。
三、加入样式
我将以3种形式创建一个日期,修改其样式得出最后我们所需要的形式
package com.ncepu.test;

import java.io.FileOutputStream;
import java.util.Calendar;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
public class Demo4 {
public static void main(String[] args) throws Exception {
Workbook workbook=new HSSFWorkbook();
Sheet sheet=workbook.createSheet(“Frist page”);
Row row=sheet.createRow(0);
Cell cell=row.createCell(0);
cell.setCellValue(new Date());

CreationHelper creationHelper=workbook.getCreationHelper();
CellStyle cellStyle=workbook.createCellStyle();//大单元格样式
cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat(“yyyy-mm-dd hh:mm:ss”));
cell=row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);

cell=row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);

FileOutputStream fileOutputStream=new FileOutputStream("F:\\Demo2.xls");
workbook.write(fileOutputStream);
fileOutputStream.close();

}
}
结果

四、遍历一个工作簿
以下面的二货名单.xls为例,遍历其中的内容

两种方式 遍历:
1.第一种方式:
package com.ncepu.test;

import java.io.FileInputStream;
import java.io.InputStream;

import javax.management.loading.PrivateClassLoader;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class Demo5 {
public static void main(String[] args)throws Exception {
InputStream inputStream=new FileInputStream(“F:\二货名单.xls”);
POIFSFileSystem fSystem=new POIFSFileSystem(inputStream);
HSSFWorkbook workbook=new HSSFWorkbook(fSystem);
HSSFSheet hssfSheet=workbook.getSheetAt(0);
if(hssfSheetnull)
{
return;
}
//遍历行Row
for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++)
{
HSSFRow hssfRow=hssfSheet.getRow(rowNum);
if(hssfRow
null)
{
continue;
}
//遍历列cell
for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++)
{
HSSFCell hssfCell=hssfRow.getCell(cellNum);
if(hssfCell==null)
{
continue;
}
System.out.println(" "+getValue(hssfCell));
}
System.out.println();
}
}
private static String getValue(HSSFCell hssfCell)
{
if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN)
{
return String.valueOf(hssfCell.getBooleanCellValue());
}else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
return String.valueOf(hssfCell.getNumericCellValue());
}else{
return String.valueOf(hssfCell.getStringCellValue());
}
}
}
2.第二种方式:
package com.ncepu.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class Demo52 {
public static void main(String[] args) throws Exception {
InputStream iStream=new FileInputStream(“F:\Cell.xls”);
POIFSFileSystem fsFileSystem=new POIFSFileSystem(iStream);
HSSFWorkbook workbook=new HSSFWorkbook(fsFileSystem);
ExcelExtractor excelExtractor=new ExcelExtractor(workbook);
excelExtractor.setIncludeSheetNames(false);
System.out.println(excelExtractor.getText());
}
}
结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值