一个表单的信息量比较大,有很多同类型的表格(料号1,料号2,料号3,...)等等,显出在web页面,我想在这个页面做一个功能按钮,一点就能将这个页面的相关表格信息导出到excel, 之前有用其他语言弄过, lotusscript不熟.
有弄过的兄台指教下,多谢了.
小弟一直在线.
------解决方案--------------------
var oExcel = new ActiveXObject("Excel.application"); //创建Excel对象
var oWork =oExcel.Workbooks.Add(); //新建一个Excel工作簿
var oSheet =oWork.ActiveSheet; //指定要写入内容的工作表为活动工作表
var table =document.all.table1; //指定要写入的数据源的id
var myRow =table.rows.length; //取数据源行数
var myCell =table.rows(0).cells.length; //取数据源列数
for(i=0;i<myRow;i++){ //在Excel中写行
for(j=0;j<myCell;j++){ //在Excel中写列
//定义格式
if ((i==0)
------解决方案--------------------
(i==myRow-1)){
oSheet.Cells(i+1,j+1).Font.Bold =true; //加粗
oSheet.Cells(i+1,j+1).Font.Size =12; //字体大小
}else{
oSheet.Cells(i+1,j+1).Font.Bold =false;
oSheet.Cells(i+1,j+1).Font.Size =10; //字体大小
}
oSheet.Cells(i+1,j+1).value =table.rows(i).cells(j).innerText; //向单元格写入值
}
}
oExcel.Visible = true;
oExcel.UserControl = true;
------解决方案--------------------
首先你要明白从哪里抓取数据,表单上的字段数据是存在文档里的,因此要从文档中获取数据,然后写入Excel中。你可以按照以下思路来做:
1,表单上建一个导出按钮
2,写一个ajax调用一个代理获取到数据,拼成XML返回
3,获取到返回的数据,循环写入Excel即可
参考代码:
function excelout()
{
var t=new Date();
var sGetURL="/Application/test.nsf/exceloutAgent?OpenAgent&key="+t.getSeconds()
var xmlHttp = GetXmlHttp();
var XMLDom=new ActiveXObject("Microsoft.XMLDOM");
xmlHttp.open("GET", sGetURL, false); //GET传参
xmlHttp.setRequestHeader("Cookie",document.cookie);
xmlHttp.send(null);
XMLDom=xmlHttp.responseXML;
//alert(XMLDom.xml)
try
{
var xls = new ActiveXObject("Excel.Application");
}
catch(e)
{
alert( "要打印,您必须安装Excel软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件!");
return false;