您的位置:程序门 -> java -> j2ee / ejb / jms



如何将网页上的表格数据导入到excel(只用poi实现)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何将网页上的表格数据导入到excel(只用poi实现)[已结贴,结贴人:czrjsj]
发表于:2007-06-15 10:04:27 楼主
各位大侠:
        小弟想将网页上的表单数据,导入到excel中去。公司要求用poi实现,但是我不知道如何提取网页中table的表单数据。用js来实现一个table表单导出,又没有达到公司的要求。请教各位大侠,java如何提取网页中的表格内容?
        大概的表单如下:
<table   id= "tableexcel1 "   width= "100% "   border= "1 "   cellspacing= "0 "
cellpadding= "0 ">

<tr>

<td   colspan= "5 "   align= "center "> web页面导出为excel文档的方法 </td>

</tr>

<tr>

<td> 列标题1 </td>

<td> 列标题2 </td>

<td> 列标题3 </td>

<td> 列标题4 </td>

<td> 列标题5 </td>

</tr>

<tr>

<td> aaa </td>

<td> bbb </td>

<td> ccc </td>

<td> ddd </td>

<td> eee </td>

</tr>

<tr>

<td> aaa </td>

<td> bbb </td>

<td> ccc </td>

<td> ddd </td>

<td> eee </td>

</tr>

<tr>

<td> fff </td>

<td> ggg </td>

<td> hhh </td>

<td> iii </td>

<td> jjj </td>

</tr>


</table>
<table   id= "tableexcel2 "   width= "100% "   border= "1 "   cellspacing= "0 "
cellpadding= "0 ">

<tr>

<td   colspan= "5 "   align= "center "> web页面导出为excel文档的方法 </td>

</tr>

<tr>

<td> 列标题1 </td>

<td> 列标题2 </td>

<td> 列标题3 </td>

<td> 列标题4 </td>

<td> 列标题5 </td>

</tr>

<tr>

<td> aaa </td>

<td> bbb </td>

<td> ccc </td>

<td> ddd </td>

<td> eee </td>

</tr>

<tr>

<td> aaa </td>

<td> bbb </td>

<td> ccc </td>

<td> ddd </td>

<td> eee </td>

</tr>

<tr>

<td> fff </td>

<td> ggg </td>

<td> hhh </td>

<td> iii </td>

<td> jjj </td>

</tr>


</table>
发表于:2007-06-15 14:01:281楼 得分:0
高手呢?
发表于:2007-06-22 16:17:592楼 得分:5
1)读取页面上的内容.
2)一行一行,一列列的写入excel中啊.
发表于:2007-06-22 16:24:363楼 得分:0
up
发表于:2007-07-05 09:05:134楼 得分:0
如何读取页面上的内容?可否举个例子?
发表于:2007-07-06 10:26:475楼 得分:25
import   java.io.fileoutputstream;
import   java.util.iterator;

import   junit.framework.testcase;

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;

/**
  *   poi使用方法简单示例
  *   @author   administrator
  *
  */
public   class   exceltest   extends   testcase   {

//创建workbook
public   void   testcreateworkbook(){

//创建excel文件
hssfworkbook   workbook   =   new   hssfworkbook();

//创建页
hssfsheet   sheet   =   workbook.createsheet( "sheet1 ");

//创建行
hssfrow   row   =   sheet.createrow(0);

//创建列
hssfcell   cell   =   row.createcell((short)0);

cell.setcellvalue( "hello   world! ");

try   {
//将创建好的excel文件保存到磁盘上
fileoutputstream   output   =   new   fileoutputstream( "d:/test.xls ");
workbook.write(output);
output.flush();
output.close();

}   catch   (exception   e)   {
e.printstacktrace();
}
}

//创建workbook
public   void   testcreateworkbook1(){

//创建excel文件
hssfworkbook   workbook   =   new   hssfworkbook();

//创建页
hssfsheet   sheet   =   workbook.createsheet( "sheet1 ");

//创建行
hssfrow   row   =   sheet.createrow(0);

//创建列
hssfcell   cell   =   row.createcell((short)0);

//正确设置单元格的编码,才能正确输出中文信息
cell.setencoding(hssfcell.encoding_utf_16);
cell.setcellvalue( "世界你好 ");

try   {
//将创建好的excel文件保存到磁盘上
fileoutputstream   output   =   new   fileoutputstream( "d:/test1.xls ");
workbook.write(output);
output.flush();
output.close();

}   catch   (exception   e)   {
e.printstacktrace();
}
}

/**
  *   读取excel文档的方法
  */
public   void   testreadworkbook(){
try   {

//读取test_template.xls文件
poifsfilesystem   ps   =   new   poifsfilesystem(
thread.currentthread().getcontextclassloader().getresourceasstream( "test_template.xls ")
);

hssfworkbook   workbook   =   new   hssfworkbook(ps);

//获取第一页的数据
hssfsheet   sheet   =   workbook.getsheetat(0);

iterator   rows   =   sheet.rowiterator();
while(rows.hasnext()){
system.out.println();
hssfrow   row   =     (hssfrow)rows.next();
iterator   cells   =   row.celliterator();
while(cells.hasnext()){
hssfcell   cell   =   (hssfcell)cells.next();
system.out.print(cell.getstringcellvalue()+ "\t ");
}
}

}   catch   (exception   e)   {
e.printstacktrace();
}
}

/**
  *   读取excel文档的方法
  */
public   void   testreadworkbook1(){
try   {

//读取test_template.xls文件
poifsfilesystem   ps   =   new   poifsfilesystem(
thread.currentthread().getcontextclassloader().getresourceasstream( "test_template.xls ")
);

hssfworkbook   workbook   =   new   hssfworkbook(ps);

//获取第一页的数据
hssfsheet   sheet   =   workbook.getsheetat(0);

iterator   rows   =   sheet.rowiterator();
while(rows.hasnext()){
system.out.println();
hssfrow   row   =     (hssfrow)rows.next();

//获得最后一个单元格的编号
int   celllength   =   row.getlastcellnum();

//按顺序读取单元格的值
for(int   i=0;   i   <   celllength;   i++){
hssfcell   cell   =   row.getcell((short)i);
system.out.print(cell.getstringcellvalue()+ "\t ");
}
}

}   catch   (exception   e)   {
e.printstacktrace();
}
}
}
发表于:2007-07-06 11:39:286楼 得分:20
给你一个最简单的方法:
function   allareaexcel()  
  {
    var   oxl   =   new   activexobject( "excel.application ");  
    var   owb   =   oxl.workbooks.add();  
    var   osheet   =   owb.activesheet;    
    var   sel=document.body.createtextrange();
    sel.movetoelementtext(这里表格的名字);
    sel.select();
    sel.EXECcommand( "copy ");
    osheet.paste();
    oxl.visible   =   true;
  }
javascript
用一个按钮调用这个事件就搞定。
发表于:2007-07-25 16:20:357楼 得分:0
谢谢楼上的,你说的方法我用过了。但是导出来的结果虽然是excel,但不能修改内容。
而且需要对ie进行设置才行,不过还是谢谢了!


快速检索

最新资讯
热门点击