页面中的表格另存为excel

时间:2021-10-12 06:23:41
jsp页面表格里的数据是从数据库中读取,想在客户端通过点击一个按钮实现弹出'另存为'的对话框来保存这个表格,默认是.xls格式的,最好可以设置默认文件名,大家帮忙

4 个解决方案

#1


怎么没人啊 不会是这个问题太简单了?

#2


跟你的要求不太一致,这段代码是点了按钮后直接打开EXCEL,将表格内容写进去,用户需要手动保存。

<HTML>
<HEAD>
<TITLE>将页面中指定表格的数据导入到Excel中</TITLE>
<SCRIPT LANGUAGE="javascript"> 
<!-- 
function AutomateExcel() 


var oXL = new ActiveXObject("Excel.Application"); //创建应该对象 
var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
var table = document.all.data;//指定要写入的数据源的id
var hang = table.rows.length;//取数据源行数
var lie = table.rows(0).cells.length;//取数据源列数

// Add table headers going cell by cell. 
for (i=0;i<hang;i++){//在Excel中写行
  for (j=0;j<lie;j++){//在Excel中写列
    //定义格式
    oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
    oSheet.Cells(i+1,j+1).Font.Size = 10;//字体大小
    oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向单元格写入值
  } 

oXL.Visible = true; 
oXL.UserControl = true; 

//-->
</SCRIPT>
</HEAD>

<BODY>
<table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
 <tr bgcolor="white">
  <td>&nbsp;姓名</td>
  <td>年龄</td>
  <td>性别</td>
 </tr>
 <tr bgcolor="white">
  <td>张三</td>
  <td>22</td>
  <td>女</td>
 </tr>
 <tr bgcolor="white">
  <td>李四</td>
  <td>23</td>
  <td>男</td>
 </tr>
</table>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel">
</BODY>
</HTML>

#3


谢谢 这种方式已经实现
只是与用户要求有点出入 以下代码在office2003以下的版本中可以实现,能不能让它在office2003中也能运行?
function exportExcel(obj)

 if (typeof(EXPORT_OBJECT)!="object")
  { 
   document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E510-0000-0000-C000-000000000046 id=EXPORT_OBJECT></Object>");
   //0002E510-0000-0000-C000-000000000046 
  } 
 with (EXPORT_OBJECT){ 
     DataType = "HTMLData"; 
   try{ 
      ActiveSheet.Export("C:\sortTEL.xls",0); 
 alert('导出EXCEL文档完毕'); 
     } 
 catch (e)
 { 
        alert('导出Excel表失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件'); 
 } 
      } 
 } 

#4


http://hi.baidu.com/peterdai/blog/item/e7723b7beba963f50bd187ef.html

http://community.csdn.net/Expert/topic/5405/5405571.xml?temp=.807461

#1


怎么没人啊 不会是这个问题太简单了?

#2


跟你的要求不太一致,这段代码是点了按钮后直接打开EXCEL,将表格内容写进去,用户需要手动保存。

<HTML>
<HEAD>
<TITLE>将页面中指定表格的数据导入到Excel中</TITLE>
<SCRIPT LANGUAGE="javascript"> 
<!-- 
function AutomateExcel() 


var oXL = new ActiveXObject("Excel.Application"); //创建应该对象 
var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
var table = document.all.data;//指定要写入的数据源的id
var hang = table.rows.length;//取数据源行数
var lie = table.rows(0).cells.length;//取数据源列数

// Add table headers going cell by cell. 
for (i=0;i<hang;i++){//在Excel中写行
  for (j=0;j<lie;j++){//在Excel中写列
    //定义格式
    oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
    oSheet.Cells(i+1,j+1).Font.Size = 10;//字体大小
    oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向单元格写入值
  } 

oXL.Visible = true; 
oXL.UserControl = true; 

//-->
</SCRIPT>
</HEAD>

<BODY>
<table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
 <tr bgcolor="white">
  <td>&nbsp;姓名</td>
  <td>年龄</td>
  <td>性别</td>
 </tr>
 <tr bgcolor="white">
  <td>张三</td>
  <td>22</td>
  <td>女</td>
 </tr>
 <tr bgcolor="white">
  <td>李四</td>
  <td>23</td>
  <td>男</td>
 </tr>
</table>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel">
</BODY>
</HTML>

#3


谢谢 这种方式已经实现
只是与用户要求有点出入 以下代码在office2003以下的版本中可以实现,能不能让它在office2003中也能运行?
function exportExcel(obj)

 if (typeof(EXPORT_OBJECT)!="object")
  { 
   document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid=clsid:0002E510-0000-0000-C000-000000000046 id=EXPORT_OBJECT></Object>");
   //0002E510-0000-0000-C000-000000000046 
  } 
 with (EXPORT_OBJECT){ 
     DataType = "HTMLData"; 
   try{ 
      ActiveSheet.Export("C:\sortTEL.xls",0); 
 alert('导出EXCEL文档完毕'); 
     } 
 catch (e)
 { 
        alert('导出Excel表失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件'); 
 } 
      } 
 } 

#4


http://hi.baidu.com/peterdai/blog/item/e7723b7beba963f50bd187ef.html

http://community.csdn.net/Expert/topic/5405/5405571.xml?temp=.807461