学习POI操作Excel

学习poi操作Excel文档,查看了很多的网上资料,发现使用poi进行Excel的使用主要分为四步:

一、创建一个Excel表

       XSSFWorkbook hwb = new XSSFWorkbook();

二、获取数据库中的表

       XSSFSheet hs = hwb.createSheet("poitest");

三、获取表中的某一行

       XSSFRow hr = hs.createRow(0);

四、获取表中的某一列

       XSSFCell[] hc = new XSSFCell[ColumnCount];

以下是我按照网上的例子写的一个使用poi生成Excel文件,并将从数据库中读取的内容放入里面的例子:

package com.poi.demo;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 *
 * @author Administrator
 *
 */
public class POIDownLoad {

 //poi操作数据库导出Excel文件
 public static void main(String[] args) {
  
  //获取数据库连接
  Connection conn = DBUtil.getConn();
  PreparedStatement psmt = null;
  ResultSet rs = null;
  //数据库查询语句
  String sql = "select * from poitest";
  try {
   //执行查询
   psmt = conn.prepareStatement(sql);
   //返回查询结果集
   rs = psmt.executeQuery();
   //获取表格中的总列数
   int ColumnCount = rs.getMetaData().getColumnCount();
   int i = 1;
   //创建Excel文件
   XSSFWorkbook hwb = new XSSFWorkbook();
   //获取数据库中将要操作的表
   XSSFSheet hs = hwb.createSheet("poitest");
   //创建第一行内容
   XSSFRow hr = hs.createRow(0);
   //
   XSSFCell[] hc = new XSSFCell[ColumnCount];
   
   String[] names = new String[ColumnCount];
   names[0] = "ID";
   names[1] = "用户名";
   names[2] = "密码";
   for (int j = 0; j < ColumnCount; j++) {
    hc[j] = hr.createCell((short)j);
    hc[j].setCellValue(new XSSFRichTextString(names[j]));
   }
   
   while (rs.next()) {
    XSSFRow hr1 = hs.createRow(i);
    for (int j = 0; j < ColumnCount; j++) {
     XSSFCell hc1 = hr1.createCell((short)j);
     hc1.setCellValue(new XSSFRichTextString(rs.getString(j+1)));
    }
    i++;
   }
   OutputStream out = new FileOutputStream("C:\\POI.xlsx");
   hwb.write(out) ;
   out.close() ;
   System.out.println("数据库导出成功") ;
  } catch (SQLException e) {
   e.printStackTrace();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(conn);
   DBUtil.close(psmt);
   DBUtil.close(rs);
  }
 }
}

猜你喜欢

转载自xiaoan2345.iteye.com/blog/2144706