package com.census.service.daoImpl;
import java.io.InputStream;
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import javax.annotation.Resource;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.springframework.stereotype.Component;import com.census.bean.Residence;
import com.census.bean.Student;import com.census.dao.StudentDao;import com.census.service.dao.StudentServiceDao;@Component
public class StudentServiceDaoImpl implements StudentServiceDao {//这里需要引入poi-2.5.1.jar
public InputStream getInputStream(String stno) { //生成HSSFWorkbook对象,他就像excel文件本身 HSSFWorkbook wb = new HSSFWorkbook(); //创建excel表格的一个sheet(默认三个),存放表数据 HSSFSheet sheet = wb.createSheet("sheet1"); //创建一个行,每一行和每个单元都是从0开始 HSSFRow row = sheet.createRow(0); //创建单元格(第一行为表头) HSSFCell cell = row.createCell((short) 0); //设定字符编码ENCODING_UTF_16(每个都要设) cell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置单元格存放内容 cell.setCellValue("学号");cell = row.createCell((short) 1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("姓名"); cell = row.createCell((short) 2); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("性别");cell = row.createCell((short) 3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("院系"); cell = row.createCell((short) 4); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("班级"); cell = row.createCell((short) 5); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("专业"); cell = row.createCell((short) 6); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("入学时间"); cell = row.createCell((short) 7); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("身份证号码"); cell = row.createCell((short) 8); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("民族"); cell = row.createCell((short) 9); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("出生日期"); cell = row.createCell((short) 10); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("政治面貌"); cell = row.createCell((short) 11); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("籍贯"); cell = row.createCell((short) 12); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("文化程度"); cell = row.createCell((short) 13); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("户口类别"); //以上创建的是表头,下面创建的是表内容,[循环]插入数据库数据 //[如果多条记录循环每次循环写入一行数据] Student st=getStudentByStudentNo(stno); Residence residence=st.getResidence(); /***************************************************************/ //创建一个行,每一行和每个单元都是从0开始 HSSFRow row2 = sheet.createRow(1); HSSFCell cell2= row2.createCell((short) 0); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getStudentNo());cell2 = row2.createCell((short) 1);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getStudentName()); cell2 = row2.createCell((short) 2); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getStudentSex());cell2 = row2.createCell((short) 3);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getDepartMent()); cell2 = row2.createCell((short) 4); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getStudentClass()); cell2= row2.createCell((short) 5); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getSpecialty()); cell2 = row2.createCell((short) 6); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(st.getEntertag().toLocaleString()); cell2 = row2.createCell((short) 7); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getIdNo()); cell2 = row2.createCell((short) 8); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getNation()); cell2 = row2.createCell((short) 9); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getBirthDate().toLocaleString()); cell2 = row2.createCell((short) 10); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getPolitics()); cell2 = row2.createCell((short) 11); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getNativePlace()); cell2 = row2.createCell((short) 12); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getEducation()); cell2 = row2.createCell((short) 13); cell2.setEncoding(HSSFCell.ENCODING_UTF_16); cell2.setCellValue(residence.getResidencetype());ByteArrayOutputStream os = new ByteArrayOutputStream();
try { wb.write(os); } catch (IOException e) { e.printStackTrace(); } byte[] content = os.toByteArray(); InputStream is = new ByteArrayInputStream(content); return is; }public Student getStudentByIdNo(String idNo) {
return studentDao.getStudentByIdNo(idNo); }@Resource
StudentDao studentDao;public void deleteStudent(Student student) {
studentDao.deleteStudent(student);
}public void insertSudent(Student student) {
studentDao.insertSudent(student);}
public Student getStudentByStudentNo(String id) {
return studentDao.getStudentByStudentNo(id);
}public void updateStudent(Student student) {
studentDao.updateStudent(student);}
}