一般会结合文件上传下载使用
jar包下载地址:https://www-eu.apache.org/dist/poi/release/bin/poi-bin-4.1.0-20190412.zip
里面提供了很多jar包,读写只引入了三个包:
package excel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
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;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.junit.Test;
public class ExcelTest {
@Test
public void testWrite() throws IOException{
//获得Excel文件输出流
FileOutputStream out=new FileOutputStream(new File("write.xls"));
//创建Excel工作簿对象
@SuppressWarnings("resource")
HSSFWorkbook wb=new HSSFWorkbook();
//创建excel页
HSSFSheet sheet=wb.createSheet("导出excel");
//创建表头
HSSFRow row0=sheet.createRow(0);
//创建表头的单元格
row0.createCell(0).setCellValue("学号");
row0.createCell(1).setCellValue("班级");
row0.createCell(2).setCellValue("姓名");
//写入一行内容
HSSFRow row1=sheet.createRow(1);
//设置单个单元格
HSSFCell cell1_0=row1.createCell(0);
cell1_0.setCellValue(1754);
//设置样式
/*HSSFCellStyle style=wb.createCellStyle();
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));//保留两位小数,四舍五入
cell1_0.setCellStyle(style);*/
row1.createCell(1).setCellValue("1611班");
row1.createCell(2).setCellValue("罗飘");
//输出
wb.write(out);
out.close();
testRead();
}
public void testRead() throws IOException {
//创建输入流,接收目标excel文件
FileInputStream in=new FileInputStream(new File("write.xls"));
//得到poi文件系统对象
POIFSFileSystem poifs=new POIFSFileSystem(in);
//得到excel工作簿对象
@SuppressWarnings("resource")
HSSFWorkbook wb=new HSSFWorkbook(poifs);
//得到工作簿第一页
HSSFSheet sheet=wb.getSheetAt(0);
//遍历工作簿每一行
for (Row row : sheet) {
//遍历每一行的每一列
for (Cell cell : row) {
//获取每个单元格的类型
CellType cellType=cell.getCellType();//枚举
switch(cellType) {
case BLANK://空格
System.out.print("\t");
break;
case STRING://字符串
System.out.print(cell.getStringCellValue()+"s\t");
break;
case NUMERIC://数字
System.out.print(cell.getNumericCellValue()+"n\t");
break;
default:
break;
}
}
in.close();
System.out.println();
}
}
}