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

来源:互联网 发布:美辰堂燕窝是假货 知乎 编辑:程序博客网 时间:2024/05/17 15:41
写值到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<Map> 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 2003wb = new HSSFWorkbook(in);}else if(file.getName().endsWith(EXCEL_XLSX)){// Excel 2007/2010wb = new XSSFWorkbook(in);}return wb;}}



java poi技术操作excel之读取Excel:点击打开链接
需要使用的Poi jar包下载地址:poi 3.15下载地址

0 0