POI之excel导入导出操作

一般会结合文件上传下载使用

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();	
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_37575994/article/details/100150174
今日推荐