excel

package item;
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.*; 
import javax.swing.JOptionPane; 
import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFFooter; 
import org.apache.poi.hssf.usermodel.HSSFHeader; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 


public class PoiDemo { 
//	表头
	public static final String[] tableHeader = {"id","姓名","密码"}; 
//	创建工作本
	public static HSSFWorkbook demoWorkBook = new HSSFWorkbook(); 
//	创建表
	public static HSSFSheet demoSheet = demoWorkBook.createSheet("用户信息"); 
//	表头的单元格个数目
	public static final short cellNumber = (short)tableHeader.length; 
//	数据库表的列数
	public static final int columNumber = 3; 
	/**
	 * 34.* 创建表头 35.*
	 * 
	 * @return 36.
	 */ 
	@SuppressWarnings("deprecation")
	public static void createTableHeader() 
	{
		HSSFHeader header = demoSheet.getHeader(); 
		header.setCenter("用户表"); 
		HSSFRow headerRow = demoSheet.createRow((short) 0); 
		for(int i = 0;i < cellNumber;i++) 
		{ 
			HSSFCell headerCell = headerRow.createCell((short) i); 
			headerCell.setEncoding(HSSFCell.ENCODING_UTF_16); 
			headerCell.setCellValue(tableHeader[i]); 
		}
	}
/**
 * 50.* 创建行 51.*
 * 
 * @param cells
 *            52.*
 * @param rowIndex
 */ 
@SuppressWarnings("deprecation")
public static void createTableRow(List<String> cells , short rowIndex) 
{ 
//	创建第rowIndex行
	HSSFRow row = demoSheet.createRow((short) rowIndex); 
	for(short i = 0;i < cells.size();i++) 
	{ 
//		创建第i个单元格
		HSSFCell cell = row.createCell((short) i); 
		cell.setEncoding(HSSFCell.ENCODING_UTF_16); 
		cell.setCellValue(cells.get(i)); 
	} 
} 
/**
 * 68.* 创建整个Excel表 69.*
 * 
 * @throws SQLException
 *             70.* 71.
 */ 
public static void createExcelSheeet() throws SQLException 
{ 
	createTableHeader(); 
	ResultSet rs = SheetDataSource.selectAllDataFromDB(); 
	int rowIndex = 1; 
	while(rs.next()) 
	{ 
		List<String> list = new ArrayList<String>(); 
		for(int i = 1;i <= columNumber;i++) 
		{ 
			list.add(rs.getString(i)); 
		} 
		createTableRow(list,(short)rowIndex); 
		rowIndex++; 
	} 
} 
/**
 * 89.* 导出表格 90.*
 * 
 * @param sheet
 *            91.*
 * @param os
 *            92.*
 * @throws IOException
 *             93.
 */ 
public void exportExcel(HSSFSheet sheet,OutputStream os) throws IOException 
{ 
	sheet.setGridsPrinted(true); 
	HSSFFooter footer = sheet.getFooter(); 
	footer.setRight("Page " + HSSFFooter.page() + " of " + 
			HSSFFooter.numPages()); 
	demoWorkBook.write(os); 
} 
public static void main(String[] args) { 
	String fileName = "D:\\用户信息.xls"; 
	FileOutputStream fos = null; 
	try { 
		PoiDemo pd = new PoiDemo(); 
		PoiDemo.createExcelSheeet(); 
		fos = new FileOutputStream(fileName); 
		pd.exportExcel(demoSheet,fos); 
		JOptionPane.showMessageDialog(null, "表格已成功导出到 : "+fileName); 
	} catch (Exception e) { 
		JOptionPane.showMessageDialog(null, "表格导出出错,错误信息 :"+e+"\n错误原因可能是表格已经打开。"); 
		e.printStackTrace(); 
	} finally { 
		try { 
			fos.close(); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} 
	} 
} 
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值