求上海市2010年poi数据

7819人阅读
import java.io.FileInputS
import java.io.IOE
import java.io.InputS
import java.util.I
import org.apache.poi.hssf.usermodel.HSSFC
import org.apache.poi.hssf.usermodel.HSSFW
import org.apache.poi.ss.usermodel.C
import org.apache.poi.ss.usermodel.R
import org.apache.poi.ss.usermodel.S
import org.apache.poi.ss.usermodel.W
import org.apache.poi.xssf.usermodel.XSSFW
public class ReadExcel001 {
public static void main(String[] args) {
readXml(&D:/test.xlsx&);
System.out.println(&-------------&);
readXml(&d:/test2.xls&);
public static void readXml(String fileName){
boolean isE2007 = //判断是否是excel2007格式
if(fileName.endsWith(&xlsx&))
InputStream input = new FileInputStream(fileName); //建立输入流
Workbook wb
//根据文件格式(2003或者2007)来初始化
if(isE2007)
wb = new XSSFWorkbook(input);
wb = new HSSFWorkbook(input);
Sheet sheet = wb.getSheetAt(0);
//获得第一个表单
Iterator&Row& rows = sheet.rowIterator(); //获得第一个表单的迭代器
while (rows.hasNext()) {
Row row = rows.next(); //获得行数据
System.out.println(&Row #& + row.getRowNum()); //获得行号从0开始
Iterator&Cell& cells = row.cellIterator(); //获得第一行的迭代器
while (cells.hasNext()) {
Cell cell = cells.next();
System.out.println(&Cell #& + cell.getColumnIndex());
switch (cell.getCellType()) { //根据cell中的类型来输出数据
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println(cell.getNumericCellValue());
case HSSFCell.CELL_TYPE_STRING:
System.out.println(cell.getStringCellValue());
case HSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue());
case HSSFCell.CELL_TYPE_FORMULA:
System.out.println(cell.getCellFormula());
System.out.println(&unsuported sell type&);
} catch (IOException ex) {
ex.printStackTrace();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10039次
排名:千里之外poi读取excel2010的问题 - ITeye问答
用这种方式读取excel2010的文件的时候会报错: Workbook wb = new HSSFWorkbook(fis);
换用下面的方式读取的时候程序根本过不去,也不报错,debug到下面这一行的时候直接进入 停在这儿了,Workbook& wb = new XSSFWorkbook(fis);应该怎么解决呢,有人用poi操作过excel2010么,我试了poi3.5,3.7,3.8三个版本都是这样。
问题补充:蓝凝幽偌 写道&&&&&&& 可以通过设置响头ContentType达到以Excel文档形式输出的目的。
POI组件介绍
Apache的Jakata项目POI,就可以用来操作Excel,并满足大部分需要。POI下面几个子项目,其中HSSF项目就上用来实现Excel的读写的。下面是HSSF的主页:http://jakarta.apache.org/poi/hssf/index.html.
POI组件可以到www.apache.org下载,下载后,将jar包所有的位置加入工程的lib目录中或将jar包所有的位置加入到classpath,或者将其解压的jar包拷到Tomcat目录的common\lib目录
最新的下载地址:http://poi.apache.org/
(1)创建连接数据库的JavaBean的文件DBConnection.java
package myB
import java.sql.*;
public class DBConnection {
String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspSamples";
//String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//String sConnStr="jdbc:odbc:JspSamples";
public DBConnection(){
Class.forName(sDBDriver);
}catch(ClassNotFoundException e){
System.out.println("DBConnection()"+e.getMessage());
public ResultSet execQuery(String sql){
ResultSet rs=
Connection conn=DriverManager.getConnection(sConnStr,"sa","sa");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException ex){
System.out.println("DBConnection.execQuery()"+ex.getMessage());
(2)下面的操作Excel的类会取出的前面数据库里面的所有数据,然后逐条写到Excel文件中。类的文件名POIExcel.java
package myB
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
import java.sql.*;
import myBean.DBC
public class POIExcel {
private DBC
public POIExcel() {
con=new DBConnection();
//@SuppressWarnings("deprecation")
@SuppressWarnings("deprecation")
public void exportExcel(String name,OutputStream out){
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet(name);
HSSFRow row=sheet.createRow(0);
HSSFCell cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("姓名");
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("电子邮件");
String sql="select name,email from db_user";
int nRow=1;
ResultSet rs=con.execQuery(sql);
while(rs.next()){
row=sheet.createRow(nRow++);
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getString("name"));
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getString("email"));
rs.close();
}catch(SQLException e){
System.out.println("POIExcel.exportExcel()"+e.getMessage());
wb.write(out);
}catch(Exception e){
System.out.println("POIExcel.exportExcel()"+e.getMessage());
程序首先创建一个HSSFWorkbook实例,它相当于一个Excel文件,然后创建HSSFSheet,它相当于一个Excel文件的一页。
在创建了页对象之后,就可以向该页中添加内容了。POI将Excel文件页面中的每行用HSSFRow来表示,而每个单元格用HSFFCell对象来表示。向页面添加内容时,首先创建行,然后再创建行所包含的单元格,设置单元格的数据。向行中添加单元格时,行的列是以0开始进行索引的。
语句cell.setEncoding(HSFFCell.ENCODING_UTF_16)用来说明单元格中的数据的编码是UTF-16,以便处理汉字,否则默认编码不能识别汉字,将会出现乱码。
最后调用HSSFWorkbook的write方法输出添加好内容的Excel文件。
POI提供的类和方法很丰富,远不止这里用到的,在进行实际开发时还需要参考相关的手册。
下面是用来调用该Servlet实现POI操作并生成Excel的Servlet代码,文件名为POITest.java。
package myB
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import myBean.POIE
public class POITest extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
POIExcel excel=new POIExcel();
excel.exportExcel("user",response.getOutputStream());
语句response.setContentType(“application/vnd.ms-excel”);用来说明返回到客户端的数据为Excel格式。随后两句首先创建了POIExcel对象,然后调用它的exportExcel()方法输出Excel文件。
(3)在web.xml中的配置代码:
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.4"
xmlns="/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/j2ee
/xml/ns/j2ee/web-app_2_4.xsd"&
& &servlet&
&&& &description&EXCEL&/description&
&&& &display-name&EXCEL&/display-name&
&&& &servlet-name&POITest&/servlet-name&
&&& &servlet-class&myBean.POITest&/servlet-class&
& &/servlet&
& &servlet-mapping&
&&& &servlet-name&POITest&/servlet-name&
&&& &url-pattern&/POITest&/url-pattern&
& &/servlet-mapping&
& &welcome-file-list&
&&& &welcome-file&index.jsp&/welcome-file&
& &/welcome-file-list&
&/web-app&
(4)程序的运行结果如下:
哥哥,你写的太多了吧,我只是想拿poi读取excel2010的文件(xlsx),这个应该怎么做 呢
&&&&&&& 可以通过设置响头ContentType达到以Excel文档形式输出的目的。
POI组件介绍
Apache的Jakata项目POI,就可以用来操作Excel,并满足大部分需要。POI下面几个子项目,其中HSSF项目就上用来实现Excel的读写的。下面是HSSF的主页:http://jakarta.apache.org/poi/hssf/index.html.
POI组件可以到www.apache.org下载,下载后,将jar包所有的位置加入工程的lib目录中或将jar包所有的位置加入到classpath,或者将其解压的jar包拷到Tomcat目录的common\lib目录
最新的下载地址:http://poi.apache.org/
(1)创建连接数据库的JavaBean的文件DBConnection.java
package myB
import java.sql.*;
public class DBConnection {
String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspSamples";
//String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//String sConnStr="jdbc:odbc:JspSamples";
public DBConnection(){
Class.forName(sDBDriver);
}catch(ClassNotFoundException e){
System.out.println("DBConnection()"+e.getMessage());
public ResultSet execQuery(String sql){
ResultSet rs=
Connection conn=DriverManager.getConnection(sConnStr,"sa","sa");
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException ex){
System.out.println("DBConnection.execQuery()"+ex.getMessage());
(2)下面的操作Excel的类会取出的前面数据库里面的所有数据,然后逐条写到Excel文件中。类的文件名POIExcel.java
package myB
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
import java.sql.*;
import myBean.DBC
public class POIExcel {
private DBC
public POIExcel() {
con=new DBConnection();
//@SuppressWarnings("deprecation")
@SuppressWarnings("deprecation")
public void exportExcel(String name,OutputStream out){
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet(name);
HSSFRow row=sheet.createRow(0);
HSSFCell cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("姓名");
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("电子邮件");
String sql="select name,email from db_user";
int nRow=1;
ResultSet rs=con.execQuery(sql);
while(rs.next()){
row=sheet.createRow(nRow++);
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getString("name"));
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(rs.getString("email"));
rs.close();
}catch(SQLException e){
System.out.println("POIExcel.exportExcel()"+e.getMessage());
wb.write(out);
}catch(Exception e){
System.out.println("POIExcel.exportExcel()"+e.getMessage());
程序首先创建一个HSSFWorkbook实例,它相当于一个Excel文件,然后创建HSSFSheet,它相当于一个Excel文件的一页。
在创建了页对象之后,就可以向该页中添加内容了。POI将Excel文件页面中的每行用HSSFRow来表示,而每个单元格用HSFFCell对象来表示。向页面添加内容时,首先创建行,然后再创建行所包含的单元格,设置单元格的数据。向行中添加单元格时,行的列是以0开始进行索引的。
语句cell.setEncoding(HSFFCell.ENCODING_UTF_16)用来说明单元格中的数据的编码是UTF-16,以便处理汉字,否则默认编码不能识别汉字,将会出现乱码。
最后调用HSSFWorkbook的write方法输出添加好内容的Excel文件。
POI提供的类和方法很丰富,远不止这里用到的,在进行实际开发时还需要参考相关的手册。
下面是用来调用该Servlet实现POI操作并生成Excel的Servlet代码,文件名为POITest.java。
package myB
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import myBean.POIE
public class POITest extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
POIExcel excel=new POIExcel();
excel.exportExcel("user",response.getOutputStream());
语句response.setContentType(“application/vnd.ms-excel”);用来说明返回到客户端的数据为Excel格式。随后两句首先创建了POIExcel对象,然后调用它的exportExcel()方法输出Excel文件。
(3)在web.xml中的配置代码:
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.4"
xmlns="/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/j2ee
/xml/ns/j2ee/web-app_2_4.xsd"&
& &servlet&
&&& &description&EXCEL&/description&
&&& &display-name&EXCEL&/display-name&
&&& &servlet-name&POITest&/servlet-name&
&&& &servlet-class&myBean.POITest&/servlet-class&
& &/servlet&
& &servlet-mapping&
&&& &servlet-name&POITest&/servlet-name&
&&& &url-pattern&/POITest&/url-pattern&
& &/servlet-mapping&
& &welcome-file-list&
&&& &welcome-file&index.jsp&/welcome-file&
& &/welcome-file-list&
&/web-app&
(4)程序的运行结果如下:
已解决问题
未解决问题智联提示您:用人单位以任何名义向应聘者收取费用都属违法行为(如押金、资料费、代收体检费、代收淘宝信誉等),请提高警惕并注意保护个人信息!
您当前所在位置&&&当前页面
POI数据运营实习生
职位月薪:元/月
工作地点:
发布日期:15天前
工作性质:全职
工作经验:不限
最低学历:大专
招聘人数:10人
职位类别:
岗位职责:1、负责商户基础信息的增、删、改、查、合;2、负责商户数据的分拣、比对、与筛选;3、根据上级领导要求,不断提升数据处理速度以及处理准确性;4、基于信息审核后台及内部流程开展工作,不断提出操作优化建议,提升工作效率;5、配合团队及业务部门的其他工作需要,提供数据运营支持。任职要求:1、大三、大四学生;保证1周3个完整工作日的出勤;2、211和985院校优先,有丰富实习或校园活动经历优先。3、工作认真负责踏实,熟练使用excel、word等办公软件。
工作地址:
公司总部地址:上海市普陀区金沙江路1518弄近铁城市广场4楼
最新职位推荐
今日相似推荐
地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海
地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海地点:上海
公司规模:10000人以上
公司性质:外商独资
公司行业:
公司主页:
公司地址:
公司总部地址:上海市普陀区金沙江路1518弄近铁城市广场4楼
热门职位推荐:}

我要回帖

更多关于 poi 2010 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信