最终将 excel 文件下载到本地,需创建一个文件;
具体根据 File 的实例调用 .createNewFile(); 创建一个新的文件;
使用工具类中的FileUtils.openOutputStream(file);创建输出流对象
将工作簿 使用 .write(stream);的方式将数据输出
最终需要执行流的关闭操作
基于poi 里创建 excel 表单文件,
创建 HSSFWorkbook() 的实例,其实例便是一个工作薄;
再根据工作簿创建对应的工作表 sheet , 使用 .createSheet();
数据的添加使用 工作表 sheet 创建要存放数据的行, sheet .createRow(索引),返回值是 HSSFRow 代表行;
插入数据时需根据插入位置创建当前行的每一列单元格: 使用HSSFRow的实例 调用 .createCell(索引)创建单元格,并使用setCellValue()执行数据的插入
通过POI创建EXCEL
引入POI相关的jar包poi-xxx.jar
import org.apache.commons.io.FileUtils;
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 java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author xueli.li
* @create 2018/12/13 20:00
* @Description:
**/
public class PoiExpExcel {//POI生成Excel文件
public static void main(String[] args) {
String[] title = {"id", "name", "sex"};
//创建Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//创建一个工作表sheet
HSSFSheet sheet = workbook.createSheet();
//创建第一行
HSSFRow row = sheet.createRow(0);
HSSFCell cell = null;
//插入第一行数据 id,name,sex
for (int i = 0; i < title.length; i++) {
cell = row.createCell(i);
cell.setCellValue(title[i]);
}
//追加数据
for (int i = 1; i <= 10; i++) {
HSSFRow nextrow = sheet.createRow(i);
HSSFCell cell2 = nextrow.createCell(0);
cell2.setCellValue("a" + i);
cell2 = nextrow.createCell(1);
cell2.setCellValue("user" + i);
cell2 = nextrow.createCell(2);
cell2.setCellValue("男");
}
//创建一个文件
File file = new File("e:/poi_test.xls");
try {
file.createNewFile();
//将Excel内容存盘//FileUtils类来自commons-io.jar包
FileOutputStream stream = FileUtils.openOutputStream(file);
workbook.write(stream);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}