⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poidemo.java

📁 在java中实现的excel导出功能。这也是一个很好的例子。
💻 JAVA
字号:
package src.com.jp.or.cheng.excel;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
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.HSSFRichTextString;
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 = {"企业中文名","所属国家","企业英文名","2003年排名","2004年排名","2005年排名",
		"2006年排名","2007年排名","主要业务","2003年营业额","2004年营业额","2005年营业额","2006年营业额","2007年营业额","企业编号","名次升降",
		"图片","状况"};
	//创建工作本
	public static HSSFWorkbook demoWorkBook = new HSSFWorkbook();
	//创建表
	public static HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises");
	//表头的单元格个数目
	public static final short cellNumber = (short)tableHeader.length;
	//数据库表的列数
	public static final int columNumber = 18;
	/**
	 * 创建表头
	 * @return
	 */
	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);
			HSSFCell headerCell = headerRow.createCell(i);
//			headerCell.setEncoding(HSSFCell.ENCODING_UTF_16);
//			headerCell.setCellValue(tableHeader[i]);
			HSSFRichTextString strTableHeader = new HSSFRichTextString(tableHeader[i]);
			headerCell.setCellValue(strTableHeader);
		}
	}
	/**
	 * 创建行
	 * @param cells
	 * @param rowIndex
	 */
	public static void createTableRow(List<String> cells,short rowIndex)
	{
		//创建第rowIndex行
		HSSFRow row = demoSheet.createRow((short) rowIndex);
		for(int i = 0;i < cells.size();i++)
		{
			//创建第i个单元格
//			HSSFCell cell = row.createCell((short) i);
			HSSFCell cell = row.createCell(i);
//			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//	        cell.setCellValue(cells.get(i));
	        HSSFRichTextString strCell = new HSSFRichTextString(cells.get(i));
	        cell.setCellValue(strCell);
		}
	}
	
	/**
	 * 创建整个Excel表
	 * @throws SQLException 
	 *
	 */
	public 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++;
//		}
		List<String> list = new ArrayList<String>();
		list.add(0,"111");
		list.add(1,"111");
		list.add(2,"111");
		list.add(3,"111");
		list.add(4,"111");
		list.add(5,"111");
		list.add(6,"111");
		list.add(7,"111");
		createTableHeader();
		int rowIndex = 1;
		createTableRow(list,(short)rowIndex);
	}
	/**
	 * 导出表格
	 * @param sheet
	 * @param os
	 * @throws IOException
	 */
	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();
	        	pd.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();
	            }
	        }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -