这是我以前做过的,很不满意。
<html>
<head>
<title>查询结果</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<input type=button value="表格另存为Excel表格">
<table id="AutoNumber1" border="1">
<tr>
<td colspan="14" align="center">单位项目</td>
</tr>
<tr>
<td rowspan="2" align="center">姓名</td>
<td rowspan="2" align="center">性别</td>
<td colspan="2" align="center"><a href="#">项目一</a></td>
<td colspan="2" align="center"><a href="#">项目二</a></td>
<td colspan="2" align="center"><a href="#">项目三</a></td>
<td colspan="2" align="center"><a href="#">项目四</a></td>
<td colspan="2" align="center"><a href="#">项目五</a></td>
<td colspan="2" align="center"><a href="#">项目六</a></td>
</tr>
<tr>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
</tr>
<tr>
<td align="center">张三</td>
<td align="center">男</td>
<td align="center">112</td>
<td align="center">22</td>
<td align="center">333</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
</table>
<!--//这是我以前做过的,很不满意。-->
<iframe src="" name=show style="width:0;height:0"></iframe>
<script language="javascript">
var currentpos,timer;
function initialize()
{
timer=setInterval('scrollwindow()',10);
}
function sc(){
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos != document.body.scrollTop)
sc();
}
document.onmousedown=sc
document.ondblclick=initialize
show.document.write(AutoNumber1.outerHTML);function SaveAsMe() {
try
{ show.document.execCommand ("SaveAs",true,"成绩统计结果.xls");}
catch(e)
{ alert("您的浏览器版本太低,请升级您的浏览器!");}
}
</script><!--//这是我以前做过的,很不满意。-->
</body>
</html>
<html>
<head>
<title>查询结果</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<input type=button value="表格另存为Excel表格">
<table id="AutoNumber1" border="1">
<tr>
<td colspan="14" align="center">单位项目</td>
</tr>
<tr>
<td rowspan="2" align="center">姓名</td>
<td rowspan="2" align="center">性别</td>
<td colspan="2" align="center"><a href="#">项目一</a></td>
<td colspan="2" align="center"><a href="#">项目二</a></td>
<td colspan="2" align="center"><a href="#">项目三</a></td>
<td colspan="2" align="center"><a href="#">项目四</a></td>
<td colspan="2" align="center"><a href="#">项目五</a></td>
<td colspan="2" align="center"><a href="#">项目六</a></td>
</tr>
<tr>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
</tr>
<tr>
<td align="center">张三</td>
<td align="center">男</td>
<td align="center">112</td>
<td align="center">22</td>
<td align="center">333</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
</table>
<!--//这是我以前做过的,很不满意。-->
<iframe src="" name=show style="width:0;height:0"></iframe>
<script language="javascript">
var currentpos,timer;
function initialize()
{
timer=setInterval('scrollwindow()',10);
}
function sc(){
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos != document.body.scrollTop)
sc();
}
document.onmousedown=sc
document.ondblclick=initialize
show.document.write(AutoNumber1.outerHTML);function SaveAsMe() {
try
{ show.document.execCommand ("SaveAs",true,"成绩统计结果.xls");}
catch(e)
{ alert("您的浏览器版本太低,请升级您的浏览器!");}
}
</script><!--//这是我以前做过的,很不满意。-->
</body>
</html>
解决方案 »
- select多选的时候可以一次移动多个,现在每次只能一个
- 帮我看下这段代码为什么在safari里面不起作用,关于AJAX,谢谢
- Js 验证 单选按钮与下拉菜单求教。
- 仿jq写一个小js框架,现在出现问题,请各位帮忙解决一下,谢
- 谁帮我注释一下代码啊,看不明白!!
- 请教:列表框添加optgroup和option的问题。
- jquery 让一段程序执行后等待1秒
- 我的浏览器为何打不开社区中的具体信息页面?
- 带checkbox的xml 树双击事件,如何设置CHECKED属性?
- 怎样使下面的程序在ie中不提示,以及怎样屏敝打印按钮。(在线等待)
- [求助]请问JavaScript能实现当网页载入后自动滚屏到指定的锚定处吗?
- 高手请进~~~~[在线等]
<script Language="VbScript">
sub OpenHtmlWithExcel()
Dim lngRows
Dim intCols
Dim strRange
Dim lngGridRow
Dim i
Dim j
Dim blnExitFor
'On Error Resume Next
'选定整个网页
call WebBrow.ExecWB(17,0)
'复制网页到剪切板
call WebBrow.ExecWB(12,0)
'清除对网页的选定
call WebBrow.ExecWB(18,0)
blnExitFor=False
Set objExcel=CreateObject("Excel.Application")
With objExcel
.DisplayAlerts = False
.Workbooks.Add
.Visible = True
.ActiveWorkbook.ActiveSheet.Paste
.ActiveWindow.DisplayGridlines = False
lngRows = .Selection.Rows.Count
intCols = .Selection.Columns.Count
'修改标题
For i = 1 To lngRows
If blnExitFor=True Then Exit For
For j = 1 To intCols
If j > 26 Then
If j Mod 26 = 0 Then
strRange = Chr(64 + j \ 26 - 1) & "Z" & i
Else
strRange = Chr(64 + j \ 26) & Chr(64 + j Mod 26) & i
End If
Else
strRange = Chr(64 + j) & i
End If
If .Range(strRange).Font.Size > 12 Then
strRange = "1:" & i - 1
'删除标题以上行
.Rows(strRange).Delete xlUp
strRange = "A1:" & Chr(64 + intCols) & 1
'合并标题行单元格
.Range(strRange).Merge
strRange = "1:1"
'标题行自动适应高度
.Rows(strRange).EntireRow.AutoFit
'重新计算行数
lngRows = lngRows -i+1
strRange = "2:" & lngRows
'定义标题以下所有行高
.Rows(strRange).RowHeight = 15
blnExitFor =True
Exit For
End If
Next
Next
'计算画线开始行
blnExitFor=False
For i = 1 To lngRows
If blnExitFor=True Then Exit For
For j = 1 To intCols
If j > 26 Then
If j Mod 26 = 0 Then
strRange = Chr(64 + j \ 26 - 1) & "Z" & i
Else
strRange = Chr(64 + j \ 26) & Chr(64 + j Mod 26) & i
End If
Else
strRange = Chr(64 + j) & i
End If
If Left(.Range(strRange).Text,4)="报表时间" Or Right(.Range(strRange).Text,1)="元" Then
lngGridRow=i
blnExitFor =True
'strRange = "B" & i
'.Range(strRange).Cut
'strRange = Chr(64 + intCols) & i
'.Range(strRange).Select
'.ActiveSheet.Paste
'strRange ="A" & i & ":" & Chr(63 + intCols) & i
'.Range(strRange).Merge
Exit For
End If
Next
Next
'自动适应列宽
If intCols > 26 Then
If intCols Mod 26 = 0 Then
strRange = "A:" & Chr(64 + intCols \ 26 - 1) & "Z"
Else
strRange = "A:" & Chr(64 + intCols \ 26) & Chr(64 + intCols Mod 26)
End If
Else
strRange = "A:" & Chr(64 + intCols)
End If
.Columns(strRange).EntireColumn.AutoFit
'为网格画线
if Err.Description<>"" then
Err.Clear
end if
If intCols > 26 Then
If intCols Mod 26 = 0 Then
strRange = "A" & i & ":" & (64 + intCols \ 26 - 1) & "Z" & lngRows
Else
strRange = "A" & i & ":" & Chr(64 + intCols \ 26) & Chr(64 + intCols Mod 26) & lngRows
End If
Else
strRange = "A" & i & ":" & Chr(64 + intCols)
End If
.Range(strRange).Font.Size=10
.Range(strRange).Borders.LineStyle = xlContinuous
.Range(strRange).Borders.ColorIndex = xlAutomatic
for i=2 to .ActiveSheet.Shapes.Count
if i=.ActiveSheet.Shapes.Count then
strShapes=strShapes & "Picture " & i
else
strShapes=strShapes & "Picture " & i & ","
end if
next
.Range("A1").Select
End With
'显示文件
if Err.Description<>"" then
Err.Clear
Set objExcel = Nothing
end if
end sub
</script>
To fujiachun(傅加淳)你贴的这堆东西有什么用?怎么用呀?你不要光贴代码呀,最起码要让我明白怎么去测试你的东西表格保存到客户端Excel文件的代码网上其实很多,但用起来很多都不怎么顺手,所以才发这个贴子我的目的是要用一个很简单的办法将一个任意复杂的表格保存成Excel文件,我并不要求大家一定要将我上面的那个表格通过点击按钮来保存成Excel文件,但我渴望看到类似的复杂表格保存为Excel文件的应用例子
用ASP导应该可以
TO kkkbs(邂逅浪漫) ASP 导出的也行啊,只要能保存到本地客户端,而且不在服务器端留下大量的垃圾文件就行。
用Asp應該也可以.
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>dictlist</title><script language="VBScript">
</script><script language="JavaScript">
<!--
var e;
function Spreadsheet_Setting() //电子表格的基本设置
{
e = document.all.MzSpreadsheet;
e.DataType = "HTMLData"; //指定表格数据源类型
e.HTMLData = document.all.data.innerHTML; //这句给控件一个数据源
e.DisplayColHeaders = 0; //列标题行
e.DisplayRowHeaders = 0; //行号列
//e.titlebar.Caption = "所存字典列表"; //电子表格标题
e.titlebar.visible = 1; //标题是否显示
e.displaytoolbar = 0; //工具栏是否显示 var c = e.Constants;
e.Range("c2").FreezePanes(c.ssFreezeTop); //冻结行
e.Range("c2").FreezePanes(c.ssFreezeLeft); //冻结列 e.Rows(1).Font.Bold = true;
e.Rows(1).Font.Color = "red";
e.Columns(1).Font.Bold = true; //e.width = document.body.clientWidth; //设置电子表格对象宽
//e.height = document.body.clientHeight-25; //设置电子表格对象高
//e.AutoFit = false; var ur = e.ActiveSheet.UsedRange;
ur.Font.size = "11";
ur.AutoFitRows();
ur.AutoFitColumns(); //自适应列宽显示 //e.Cells.Locked = True //e.Columns(1).Locked = true;
//e.Rows(1).Locked = true;
//e.ActiveSheet.Protection.Enabled = True //saveOldData()}
window.onload = function()
{
Spreadsheet_Setting();
}function save()
{
var e = document.all.MzSpreadsheet;
var ss= e.Constants;
e.ActiveSheet.Export("mm.xls", ss.ssExportActionNone);//, ss.SheetExportActionEnum
}//-->
</SCRIPT></head>
<body style="overflow:hidden; margin: 0px">
<table border=0 cellpadding=0 cellspacing=0 width="100%" height="100%">
<tr>
<td>
<OBJECT id=MzSpreadsheet height="100%" width="100%"
classid="clsid:0002E510-0000-0000-C000-000000000046">
<param name="DisplayColHeaders" value="-1">
<param name="DisplayGridlines" value="-1">
<param name="DisplayHorizontalScrollBar" value="-1">
<param name="DisplayRowHeaders" value="-1">
<param name="DisplayToolbar" value="0">
<param name="DisplayVerticalScrollBar" value="-1">
<param name="EnableAutoCalculate" value="-1">
<param name="EnableEvents" value="-1">
<param name="MoveAfterReturn" value="-1">
<param name="MoveAfterReturnDirection" value="0">
<param name="RightToLeft" value="0">
<param name="ViewableRange" value="1:65536"></OBJECT>
</td>
</tr>
<tr>
<td height=30>
<table width="100%" border=0 id=mytable>
<tr>
<td align=center> <input type="button" name="b1" value=" 保存 " onclick="save()">
</tr>
</table>
<div id=data style="display: none">
<table border="1">
<tr>
<td colspan="14" align="center">单位项目</td>
</tr>
<tr>
<td rowspan="2" align="center">姓名</td>
<td rowspan="2" align="center">性别</td>
<td colspan="2" align="center"><a href="#">项目一</a></td>
<td colspan="2" align="center"><a href="#">项目二</a></td>
<td colspan="2" align="center"><a href="#">项目三</a></td>
<td colspan="2" align="center"><a href="#">项目四</a></td>
<td colspan="2" align="center"><a href="#">项目五</a></td>
<td colspan="2" align="center"><a href="#">项目六</a></td>
</tr>
<tr>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
<td align="center">A</td>
<td align="center">B</td>
</tr>
<tr>
<td align="center">张三</td>
<td align="center">男</td>
<td align="center">112</td>
<td align="center">22</td>
<td align="center">333</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center">李四</td>
<td align="center">女</td>
<td align="center">555;</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center">254</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center">杨五</td>
<td align="center">女</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center">554</td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body></html>
objExcelApp.DisplayAlerts = false
objExcelApp.Application.Visible = true
strAddr = Server.MapPath("book1.xls.")
objExcelApp.WorkBooks.Open(strAddr) ------》可以打开一个空的
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
不过声明,这个代码不是我原创的,我也是从别人那里学过来的 :)<iframe src="" name=show style="width:0;height:0"></iframe>
<script language="javascript">
show.document.write(AutoNumber1.outerHTML);
function SaveAsMe() {
try
{ show.document.execCommand ("SaveAs",true,"成绩统计结果.xls");}
catch(e)
{ alert("您的浏览器版本太低,请升级您的浏览器!");}
}
</script>
<script language=javascript>
var excelObj;
var $Table;
function ToExcel(resultTable){
var rows,cols;
var i,j;
$Table=document.all(resultTable);
rows=$Table.rows.length;
if(rows>0){
try {
cols=$Table.rows(0).children.length;
excelObj = new ActiveXObject("Excel.Application");
excelObj.Visible = true;
excelObj.WorkBooks.Add;
for(i=1;i<=rows;i++)
for(j=1;j<=cols;j++){
fillInExcel(i,j,$Table.rows(i-1).children(j-1).innerText);
}
} catch(e) {alert("Fail to create the Excel document!");}
}
else{
alert("no data");}
}
function fillInExcel(row,col,value){
excelObj.Cells(row, col).Value=value;
}
</script>