首页 > 数据库技术 > 详细

poi读取、通过poi导出数据库的记录到excl表

时间:2015-10-12 19:13:37      阅读:211      评论:0      收藏:0      [点我收藏+]

package com.nt.test;

?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Iterator;

?

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;

?

public class TestPOI {

//????public static void main(String[] args) {

//????????File file=new File("D://nt/question/1/木工.xls");

//????????try {

//????????????FileInputStream fint=new FileInputStream(file);

//????????????POIFSFileSystem poifsFileSystem=new POIFSFileSystem(fint);

//????????????HSSFWorkbook workbook=new HSSFWorkbook(poifsFileSystem);

//????????????HSSFSheet sheet=workbook.getSheetAt(0);

//????????????

//????????????

//????????????Iterator rows=sheet.rowIterator();

//????????????//得到总行数

//????????????int rowtotalnumber=sheet.getLastRowNum();

//????????????System.out.println("rowtotal=========="+rowtotalnumber);

//????????????while (rows.hasNext()) {

//????????????????HSSFRow row=(HSSFRow) rows.next();

//????????????????int rownumber=row.getRowNum();

//????????????????//当前行数

//????????????????System.out.println("rownumber------"+rownumber);

//????????????????

//????????????????//当前行的列数

//????????????????int lie=row.getPhysicalNumberOfCells();

//????????????????System.out.println("lie============"+lie);

//????????????????

//????????????????

//????????????????Iterator cells=row.cellIterator();

//????????????????

//????????????????while(cells.hasNext()){

//????????????????????HSSFCell cell=(HSSFCell) cells.next();

//????????????????????

//????????????????????//列好 从0开始

//????????????????????int cellnumber=cell.getCellNum();

//????????????????????System.out.println("cellnumber----"+cellnumber);

//????????????????????System.out.println(getCellStringValue(cell));

//????????????????}

//????????????}

//????????} catch (FileNotFoundException e) {

//????????????e.printStackTrace();

//????????} catch (IOException e) {

//????????????e.printStackTrace();

//????????}

//????}

????

???? ?

?

public static String getCellStringValue(HSSFCell cell) {

String cellValue = "";

switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING://字符串类型

cellValue = cell.getStringCellValue();

if(cellValue.trim().equals("")||cellValue.trim().length()<=0)

cellValue=" ";

break;

case HSSFCell.CELL_TYPE_NUMERIC: //数值类型

cellValue = String.valueOf(cell.getNumericCellValue());

break;

case HSSFCell.CELL_TYPE_FORMULA: //公式

cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

cellValue = String.valueOf(cell.getNumericCellValue());

break;

case HSSFCell.CELL_TYPE_BLANK:

cellValue=" ";

break;

case HSSFCell.CELL_TYPE_BOOLEAN:

break;

case HSSFCell.CELL_TYPE_ERROR:

break;

default:

break;

}

return cellValue;

}

?

}

?

?

?

?

?

?

?

通过poi导出数据库的记录到excl表

?

?

package com.test.daotest;

?

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

?

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.hibernate.Session;

import org.hibernate.Transaction;

?

import com.test.model.Question;

import com.test.until.HibernateSessionFactory;

?

public class ExportQuestion {

????public static void main(String[] args) {

????????int id=14;

???????? try {

????????????HSSFWorkbook wb=new HSSFWorkbook();

???????????? FileOutputStream fileout = new FileOutputStream("test"+id+".xls");

???????????? wb.write(fileout);

????????????

???????????? HSSFSheet sheet=wb.createSheet("new sheet");

???????????? //通过Hibernate来查询addressbook_table表中的数据,将其存储在List中

???????????????? Session s=HibernateSessionFactory.getSession();

???????????? Transaction tx = s.beginTransaction();

???????????? org.hibernate.Query query= s.createQuery("from Question q where q.majorId="+id);

???????????? List list = query.list();

???????????? tx.commit();

???????????? int k =0;

?

???????????? //创建表格,创建表格行和单元格,将数据库中表的字段存储在单元格中.

???????????? for(Iterator it=list.iterator();it.hasNext();){

???????????? Question q =(Question)it.next();

???????????? HSSFRow row=sheet.createRow((short)k);

???????????? row.createCell((short)0).setCellValue(1);

???????????? row.createCell((short)1).setCellValue(q.getQuestion());

???????????? row.createCell((short)2).setCellValue(q.getOptionA());

???????????? row.createCell((short)3).setCellValue(q.getOptionB());

???????????? row.createCell((short)4).setCellValue(q.getOptionC());

???????????? row.createCell((short)5).setCellValue(q.getOptionD());

???????????? row.createCell((short)6).setCellValue(q.getAnswer());

???????????? row.createCell((short)7).setCellValue(q.getMajorId());

???????????? row.createCell((short)8).setCellValue(0);

???????????? row.createCell((short)9).setCellValue(0);

???????????? k++;

???????????? }

???????????? FileOutputStream fileout1 = new FileOutputStream("test"+id+".xls");

???????????? wb.write(fileout1);

????????????

???????????? fileout1.close();

?

?

????????} catch (FileNotFoundException e) {

????????????e.printStackTrace();

????????} catch (IOException e) {

????????????e.printStackTrace();

????????}

????}

}

?

?

?

?

poi读取、通过poi导出数据库的记录到excl表

原文:http://www.cnblogs.com/chengzhipcx/p/4872198.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!