java excel解析 poi_Java解析Excel之POI(一)

public static voidmain(String[] args) {//【读取】------------------------------------------------------------//从 template.xls 文件中读取数据,并保存到 ArrayList 中后打印输出。

ArrayList list = new ArrayList();try{//1、获取文件输入流

InputStream inputStream = new FileInputStream("/Users/hrvy/temp/template.xls");//2、获取Excel工作簿对象

HSSFWorkbook workbook = newHSSFWorkbook(inputStream);//3、得到Excel工作表对象

HSSFSheet sheetAt = workbook.getSheetAt(0);//4、循环读取表格数据

for(Row row : sheetAt) {//首行(即表头)不读取

if (row.getRowNum() == 0) {continue;

}//读取当前行中单元格数据,索引从0开始

String country = row.getCell(0).getStringCellValue();

String province= row.getCell(1).getStringCellValue();

String city= row.getCell(2).getStringCellValue();

Area area= newArea();

area.setCountry(country);

area.setProvince(province);

area.setCity(city);

list.add(area);

}

System.out.println(list.toString());//5、关闭流

workbook.close();

}catch(IOException e) {

e.printStackTrace();

}//【写出】------------------------------------------------------------//新建一个 template_copy.xls 文件,并将 ArrayList 中的数据写入 template_copy.xls 文件//1.在内存中创建一个excel文件

HSSFWorkbook workbook = newHSSFWorkbook();//2.创建工作簿

HSSFSheet sheet =workbook.createSheet();//3.创建标题行

HSSFRow titlerRow = sheet.createRow(0);

titlerRow.createCell(0).setCellValue("国家copy");

titlerRow.createCell(1).setCellValue("省份copy");

titlerRow.createCell(2).setCellValue("城市copy");//4.遍历数据,创建数据行

for(Area area : list) {//获取最后一行的行号

int lastRowNum =sheet.getLastRowNum();//添加新行

HSSFRow dataRow = sheet.createRow(lastRowNum + 1);

dataRow.createCell(0).setCellValue(area.getCountry());

dataRow.createCell(1).setCellValue(area.getProvince());

dataRow.createCell(2).setCellValue(area.getCity());

}//5.创建文件名

String fileName = "template_copy.xls";//6.获取输出流对象

OutputStream outputStream;try{

outputStream= new FileOutputStream("/Users/hrvy/temp/" +fileName);//7.写出文件,关闭流

workbook.write(outputStream);

workbook.close();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值