欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java实现导出excel表

程序员文章站 2022-07-05 23:43:12
...
package com.experot;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExperotExcel {

/**
* @param args
* @throws ParseException
* @throws IOException
*/
@SuppressWarnings({ "deprecation", "unchecked" })
public static void main(String[] args) throws  Exception {

//第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb=new HSSFWorkbook();
//第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet=wb.createSheet("当日业务报表");
//第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row=sheet.createRow((short)0);
//第四步,创建单元格,并设置值表头  设置表头居中
HSSFCellStyle style=wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  //创建一个居中格式
HSSFCell cell=row.createCell((short)0);
cell.setCellValue("学号");cell.setCellStyle(style);
cell=row.createCell((short)1);
cell.setCellValue("姓名"); cell.setCellStyle(style);
cell=row.createCell((short)2);
cell.setCellValue("年龄");cell.setCellStyle(style);
cell=row.createCell((short)3);
cell.setCellValue("出生日期"); cell.setCellStyle(style);

   //   第五步,写入实体数据 实际应用中这些数据从数据库得到,
List list=ExperotExcel.getStudent();
for(int i=0;i<list.size();i++)
{
row=sheet.createRow((int)(i+1));// 创建行的数据
Student student=(Student)list.get(i);
// 第四步,创建单元格,并设置值表头 的值
// HSSFCell cell1=row.createCell((short)0);

cell=row.createCell((short)0);
cell.setCellValue((int)student.getId());
cell=row.createCell((short)1);
cell.setCellValue((String)student.getName());
cell=row.createCell((short)2);
cell.setCellValue((int)student.getAge());
cell=row.createCell((short)3);
cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(student.getBirth()));

//         row = sheet.createRow((int)i+1);
//            Student stu = (Student) list.get(i);
//            //第四步,创建单元格,并设置值
//            row.createCell((short)0).setCellValue((double)stu.getId());
//            row.createCell((short)1).setCellValue(stu.getName());
//            row.createCell((short)2).setCellValue((double)stu.getAge());
//            cell = row.createCell((short)3);
//            cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(stu.getBirth()));
      
}
try {
FileOutputStream outputStream=new FileOutputStream("E:/student.xls");
wb.write(outputStream);
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}


@SuppressWarnings("unchecked")
public static  List<Student> getStudent() throws Exception
{
List stuList=new ArrayList<Student>();
SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd");

Student student1=new Student(1,"张三",18,df.parse("1987-12-25"));
Student student2=new Student(2,"李四",19,df.parse("1997-01-25"));
Student student3=new Student(3,"王五",20,df.parse("1907-01-25"));
Student student4=new Student(4,"二师兄",21,df.parse("1977-12-25"));
stuList.add(student1);
stuList.add(student2);
stuList.add(student3);
stuList.add(student4);
return stuList;
}
}


/////
循环里两种都可以用,
这里是每列的创建,上面是为了简写,才写在row,到最后才用cell来结束