POI操作Excel生成文件与读取文件

生成和读取excel文件的jar地址

1、createExcel这是一个生成excel文件的类具体代码如下:

package utils;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;


import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import ben.Student;

public class createExcel {
	
	public void create(List<Student> list) {
		 //创建一个excel文件
		XSSFWorkbook workbook = new XSSFWorkbook();
		//创建一个工作表
		XSSFSheet sheet = workbook.createSheet("学生信息");
		//添加表头行
		XSSFRow row = sheet.createRow(0);
		//设置单元格格式居中
		XSSFCellStyle cellStyle = workbook.createCellStyle();
		cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);;
		//添加表头内容
		XSSFCell headCell = row.createCell(0);
		headCell.setCellValue("学号");
		headCell.setCellStyle(cellStyle);

        headCell = row.createCell(1);
        headCell.setCellValue("姓名");
        headCell.setCellStyle(cellStyle);
        
        headCell = row.createCell(2);
        headCell.setCellValue("年龄");
        headCell.setCellStyle(cellStyle);

        headCell = row.createCell(3);
        headCell.setCellValue("年级");
        headCell.setCellStyle(cellStyle);
        
        headCell = row.createCell(4);
        headCell.setCellValue("班主任");
        headCell.setCellStyle(cellStyle);
        
        
        
        //添加数据内容
        for (int i = 0; i < list.size(); i++) {
        	row = sheet.createRow((int)i+1);
        	Student student = list.get(i);
        	
        	//创建单元格,并设置值
        	XSSFCell cell = row.createCell(0);
        	cell.setCellValue(student.getId());
        	cell.setCellStyle(cellStyle);
        	
        	cell = row.createCell(1);
        	cell.setCellValue(student.getName());
        	cell.setCellStyle(cellStyle);
        	
        	cell = row.createCell(2);
        	cell.setCellValue(student.getAge());
        	cell.setCellStyle(cellStyle);
        	
        	cell = row.createCell(3);
        	cell.setCellValue(student.getClasss());
        	cell.setCellStyle(cellStyle);
        	
        	cell = row.createCell(4);
        	cell.setCellValue(student.getcName());
        	cell.setCellStyle(cellStyle);
		}
        
        //保存Excel文件
        
        try {
			OutputStream os = new FileOutputStream("D:/students.xls");
			workbook.write(os);
			os.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

2、readExcel是读取excel文件的类具体代码如下:

package utils;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import ben.Student;

public class readExcel {
	public List<Student> read() {
		List<Student> list = new ArrayList<Student>();
        XSSFWorkbook workbook = null;

        try {
            // 读取Excel文件
            InputStream inputStream = new FileInputStream("D:/students.xls");
            workbook = new XSSFWorkbook(inputStream);
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 循环工作表
        for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
            XSSFSheet xssfSheet = workbook.getSheetAt(numSheet);
            if (xssfSheet == null) {
                continue;
            }
            // 循环行
            for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
                XSSFRow xssfRow = xssfSheet.getRow(rowNum);
                if (xssfRow == null) {
                    continue;
                }

                // 将单元格中的内容存入集合
                Student student = new Student();

                XSSFCell cell = xssfRow.getCell(0);
                if (cell == null) {
                    continue;
                }
                student.setId((int) cell.getNumericCellValue());

                cell = xssfRow.getCell(1);
                if (cell == null) {
                    continue;
                }
                student.setName(cell.getStringCellValue());
               
                cell = xssfRow.getCell(2);
                if (cell == null) {
                    continue;
                }
                student.setAge((int) cell.getNumericCellValue());
                
                cell = xssfRow.getCell(3);
                if (cell == null) {
                    continue;
                }
                student.setClasss(cell.getStringCellValue());
                
                cell = xssfRow.getCell(4);
                if (cell == null) {
                    continue;
                }
                student.setcName(cell.getStringCellValue());;

                list.add(student);
            }
        }
        return list;
	}
}

猜你喜欢

转载自blog.csdn.net/barentt_azf/article/details/80511663