<TABLE id=tb WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD>01</TD>
<TD>二</TD>
<TD>三</TD>
</TR>
<TR>
<TD rowspan=3>四</TD>
<TD>五</TD>
<TD>六</TD>
</TR>
<TR>
<TD>七</TD>
<TD>八</TD>
</TR>
<TR>
<TD>九</TD>
<TD>一○</TD>
</TR>
<TR>
<TD>一一</TD>
<TD>一二</TD>
<TD>一三</TD>
</TR>
</TABLE>
<INPUT type="button" value="Button" id=button1 name=button1 onclick="vbs:AutomateExcel">
<SCRIPT LANGUAGE=vbs>sub AutomateExcel()
set oXL = createobject("Excel.Application")
set oWB = oXL.Workbooks.Add
set oSheet = oWB.ActiveSheet
hang = tb.rows.length
lie = tb.rows(0).cells.length
'前?行
for i=0 to 1
for j=0 to lie-1
oSheet.Cells(i+1,j+1).NumberFormatLocal = "@"
oSheet.Cells(i+1,j+1).value = tb.rows(i).cells(j).innerText
next
next
'3行?始的中?行
for  i=2 to hang-2
j=1
for each c in tb.rows(i).cells
'msgbox  c.innerText 
 oSheet.Cells(i+1,j+1).value = c.innerText 
j=j+1
next
next
'最后行
for j=0 to lie-1
oSheet.Cells(hang,j+1).value = tb.rows(i).cells(j).innerText
next
oSheet.range("A2:A"& hang-1 ).merge
oSheet.range("A2:A"& hang-1 ).value=tb.rows(1).cells(0).innerText
oXL.Visible = true
oXL.UserControl = true
set oXL = nothing
set oWB = nothing
set oSheet = nothing

end sub
</SCRIPT >oSheet.Cells(i+1,j+1).NumberFormatLocal = "@"复制粘贴可以,但是只能是在粘贴纯文本的时候才可以,否则粘贴格式的同时,把NumberFormatLocal 也同时覆盖掉,所以cell就会返回数字类型。如果要按照你希望的格式同时又让所有的格都为字符串,那么只能以格一格的插入。你用<html xmlns="....">结合oSheet.Cells(i+1,j+1).NumberFormatLocal = "@"的方法,看看行不行。先粘贴后,然后设置一下NumberFormatLocal 。

解决方案 »

  1.   

    <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40"><head>
    <meta http-equiv=Content-Type content="text/html; charset=GB2312">
    <script>
    function out(){ try{
    var elTable = document.getElementById("out");
    var oRangeRef = document.body.createTextRange();
    oRangeRef.moveToElementText( elTable );
    oRangeRef.execCommand( "Copy" ); var oXL = new ActiveXObject("Excel.Application")
    var oWB = oXL.Workbooks.Add ;
    var oSheet = oWB.ActiveSheet ;
    oSheet.Paste();
    oSheet.Cells.NumberFormatLocal = "@";
    oXL.Visible = true;
    oSheet = null;
    oWB = null;
    appExcel = null; }catch(e){alert(e)}

    }</script>
    </head><body><table id ='out'>
     <tr>
      <td x:str>00001</td>
      <td x:str>0002</td>
     </tr>
     <tr>
      <td height=18 align=right style='height:13.5pt' x:str>00001</td>
      <td align=right x:str>000002</td>
     </tr>
     <tr>
      <td x:str>0003</td>
      <td x:str>00003</td>
     </tr>
    </table>
    <INPUT type="button" value="Button" id=button1 name=button1 onclick="out()">
    </body>
    </html><html xmlns="....">结合oSheet.Cells(i+1,j+1).NumberFormatLocal = "@"的方法
      

  2.   

    这个问题其实也很好说的你用的方法是excel.application,如果你打开资源管理起就会发现这个就是打开个excel文件,你用控件会稍微快一点儿的也不算快,这个是没有办法的,如果vba有什么不懂的其实很简单,你录制宏就会看到代码的
      

  3.   

    fantiny(虽然我是菜鸟,不过我是乐于助人的菜鸟) : xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40"
    上面那一串除了放到<html>标记里,还可以放到别的地方吗,我的开发工具是一个挺烂的工具,代码是工具生成的,不是一个普通的网页,我一放到<html>里同,就又给自动清空了
      

  4.   

    应该不可以的,你看看
    http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/xmlns.asp你可以查查看,或者问问javascript版的版主。你自己在它生成的html标签下面再自己添加一个
    <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">在工具里面能做到吗?虽然解析能行,不过html就不标准了。