java 写excel poi_java poi技术操作excel之写Excel(向Excel中写入值)

写值到Excel:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.List;

import java.util.Map;

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;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class WriteExcel {

private static final String EXCEL_XLS = "xls";

private static final String EXCEL_XLSX = "xlsx";

public static void writeExcel(List dataList, int cloumnCount,String finalXlsxPath){

OutputStream out = null;

try {

// 获取总列数

int columnNumCount = cloumnCount;

// 读取Excel文档

File finalXlsxFile = new File(finalXlsxPath);

Workbook workBook = getWorkbok(finalXlsxFile);

// sheet 对应一个工作页

Sheet sheet = workBook.getSheetAt(0);

/**

* 删除原有数据,除了属性列

*/

int rowNumber = sheet.getLastRowNum();// 第一行从0开始算

System.out.println("原始数据总行数,除属性列:" + rowNumber);

for (int i = 1; i <= rowNumber; i++) {

Row row = sheet.getRow(i);

sheet.removeRow(row);

}

// 创建文件输出流,输出电子表格:这个必须有,否则你在sheet上做的任何操作都不会有效

out = new FileOutputStream(finalXlsxPath);

workBook.write(out);

/**

* 往Excel中写新数据

*/

for (int j = 0; j < dataList.size(); j++) {

// 创建一行:从第二行开始,跳过属性列

Row row = sheet.createRow(j + 1);

// 得到要插入的每一条记录

Map dataMap = dataList.get(j);

String name = dataMap.get("BankName").toString();

String address = dataMap.get("Addr").toString();

String phone = dataMap.get("Phone").toString();

for (int k = 0; k <= columnNumCount; k++) {

// 在一行内循环

Cell first = row.createCell(0);

first.setCellValue(name);

Cell second = row.createCell(1);

second.setCellValue(address);

Cell third = row.createCell(2);

third.setCellValue(phone);

}

}

// 创建文件输出流,准备输出电子表格:这个必须有,否则你在sheet上做的任何操作都不会有效

out = new FileOutputStream(finalXlsxPath);

workBook.write(out);

} catch (Exception e) {

e.printStackTrace();

} finally{

try {

if(out != null){

out.flush();

out.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("数据导出成功");

}

/**

* 判断Excel的版本,获取Workbook

* @param in

* @param filename

* @return

* @throws IOException

*/

public static Workbook getWorkbok(File file) throws IOException{

Workbook wb = null;

FileInputStream in = new FileInputStream(file);

if(file.getName().endsWith(EXCEL_XLS)){ //Excel 2003

wb = new HSSFWorkbook(in);

}else if(file.getName().endsWith(EXCEL_XLSX)){// Excel 2007/2010

wb = new XSSFWorkbook(in);

}

return wb;

}

}

java poi技术操作excel之读取Excel:点击打开链接

需要使用的Poi jar包下载地址:poi 3.15下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值