推荐几个小javascript方法。
许多项目实现将ArrayList导出为Excel表格并供客户下载。但如果是只需要将网页上已经显示的表格导出为Excel文件,其实只需要使用javascrip函数即可。之前有尝试过一些方法,但浏览器似乎对javascript的语句很敏感,需要将internet选项的安全程度调得很低,用户体验不好。推荐几个小方法,经试验,搜狗浏览器和IE8都受用。
//指定页面区域内容导入Excel
function AllAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=document.body.createTextRange();
sel.moveToElementText(PrintA); //PrintA 为table 的 id 属性值
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
//指定页面区域“单元格”内容导入Excel
function CellAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var Lenr = PrintA.rows.length;
for (i=0;i<Lenr;i++)
{
var Lenc = PrintA.rows(i).cells.length;
for (j=0;j<Lenc;j++)
{
oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
}
//指定页面区域内容导入Word
function AllAreaWord()
{
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
sel.moveToElementText(PrintA);
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
//window.close();
}
页面仍会询问是否允许交互,点“是”即可。会打开一个新建的Excel或word文档,并将table中的内容复制到文档里,因为是使用复制方式,table的所有格式包括字体颜色,背景颜色将保留。
是一个简易的方式。