日期:2014-05-16  浏览次数:20378 次

高分求:用js如何把一个excel表格另存为html格式
rt,现在想把一个excel表格转成html格式的,也就是实现excel菜单里的 "另存为网页 "功能,求教高手,谢谢!!!

------解决方案--------------------
//Obj参数指定数据的来源(限定Table),默认第一行为字段名称行
//MoveNext方法,参数是表的行向上或向下移动的位数,正数向下移动,负数向上.如.MoveNext(1),.MoveNext(-1)
//GetFieldData方法获得当前行的指定的列名的数,据如:.GetFieldData( "考试成绩 "):列名.GetFieldData(1):索引
//Sort_desc方法对指定的列按降序排列,如.Sort_desc( "学年 ", "学期 ")
//Sort_asc方法对指定的列按升序排列,如.Sort_asc( "考试成绩:number "): ": "后面的参数制定改列数据类型,此例为数字
//GetData方法返回字段值为特定值的数据数组,如果没有字段值则返回所有该字段记录.可以在外部进行其他处理,不建议直接处理数据:如.GetData()
//Delete方法删除当前记录,数组减少一行,如:.Delete
//updateField更新当前行的指定的索引数据(索引如果是数字,则是列的索引,为字符,是数据字段的名称)如:MyData.UpdateField( "课程号 ",MyData.GetFieldData( "原课程号 "))
//MoveFirst记录移动到数据的第一条记录,注意数据从第二行开始,默认第一行为字段名称行
//MoveLast记录移动到数据的最后一条记录
//Distinct返回所选记录的不同记录的条件个数维数数组,同时升序排序
//初始化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
//rows属性:数组行数,cols:列数

在示例代码中Print_bzcjd.js他是打印复杂excel的脚本,

var xlBook = xls.Workbooks.Open( "c:\\xsxycjb.xls ");
var xlsheet = xlBook.Worksheets(1)

这个可是使用网络模板,

var xlBook = xls.Workbooks.Open( "http://you.com/\PrintTemplates\\xsxycjb.xls ");
var xlsheet = xlBook.Worksheets(1)

这个力例子中基本把excel打印需要的技术都展示出来了,如图片,退出什么的。

这里要说明的是table的数据可以是隐藏的,不显示也可以取出,这样就可以增加很多数据进来,又不影响界面。

Excel.js:这个是清理excel的脚本,当结束excel进程的时候它还没有推出,清理一下,这个就没有vs好了:(。

这个是一个简单的示例,就是你给他一个表格名字就可以了,然后生成一个表格,就是这样:MakeExcel( "TABLE1 ",true, "1.xls "),其他参数可以不要。

function MakeExcel(Obj,ProceVisible,SaveAsFilename,SortType,SortField){
var MyData= new GetTableData(Obj,0,0);
var myrows=MyData.rows;
var i,j;

try {
var xls = new ActiveXObject ( "Excel.Application " );
}
catch(e) {
alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 请点击【帮助】了解浏览器设置方法! ");
return " ";
}
if (typeof(ProceVisible)== "undefined "){
xls.visible = true;
}
else{
if (ProceVisible== "true "){
xls.visible = true;
}
else
{
xls.visible = false;
}
}
var xlBook = xls.Workbooks.Add;
var xlsheet = xlBook.Worksheets(1);
xls.Cells.Select;
xls.Selection.NumberFormatLocal = "@ ";
for (i=0;i <MyData.rows ;i++){
for (j=0;j <MyData.cols ;j++){
if (typeof(MyData.GetFieldData(j)) == "number "){
xlsheet.Cells(i+1,j+1).NumberFormatLocal = "0.00_ ";
}
xlsheet.Cells(i+1,j+1).Value= MyData.GetFieldData(j);
}

MyData.MoveNext();
}

if (SaveAsFilename== " " || typeof(SaveAsFilename)== "undefined "){
var fname = xls.Application.GetSaveAsFilename( "*.xls ", "Excel Spreadsheets (*.xls), *.xls ");
if (fname!= " "){
xlBook.SaveAs(fname);
}
}
else{
xlBook.SaveAs(SaveAsFilename);
}
xlBook.Close (savechanges=false);
//xls.visible = false;
xls.Quit();
xls=null;
//结束excel进程,退出完成
window.setInterval( "Cleanup(); ",1);

}

------解决方案--------------------
学习,备用!
------解决方案--------------------
没有,只有save。
------解决方案--------------------
严格来讲应该是访问不到,vb可能可以访问到。
------解决方案---------------