none
能否通过代码的方法生成excel文件? RRS feed

  • 问题

  • 经常需要把数据导出为一个excel文件供用户下载。目前的方法就是通过vba在服务器上调用excel程序。但这个方法效率很低,而且经常出问题,无论怎么做都无法避免会有残留的excel进行。。。。

    所以我想问问能否有直接通过api的方法生成excel文件?不需要安装office,不需要启动excel进程。

    用C#、JavaScript都可以。


    da jia hao!

    2015年4月7日 5:32

答案

  • 您好:

    通过JavaScript来导出数据为excel文档的方法,您可以尝试下此代码:

    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <title>EB页面导出为EXCEL文档的方法</title> 
    <script type="text/javascript"> 
    <!-- download
    function saveCode(obj) { 
              var winname = window.open('', '_blank', 'top=10000'); 
              var strHTML = document.all.tableExcel.innerHTML; 
              winname.document.open('text/html', 'replace'); 
              winname.document.writeln(strHTML); 
              winname.document.execCommand('saveas','','excel.xls'); 
              winname.close(); 
    } 
    --> 
    </script> 
    </head> 
    
    <body> 
    <div id="tableExcel">  
    <table id="test" width="100%" border="1" cellspacing="0" cellpadding="0"> 
          <tr> 
              <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> 
          </tr> 
          <tr> 
              <td>列标题1</td> 
              <td>列标题2</td> 
              <td>列标题3</td> 
              <td>列标题4</td> 
              <td>列标题5</td> 
          </tr> 
          <tr> 
              <td>aaa</td> 
              <td>bbb</td> 
              <td>ccc</td> 
              <td>ddd</td> 
              <td>eee</td> 
          </tr> 
          <tr> 
              <td>AAA</td> 
              <td>BBB</td> 
              <td>CCC</td> 
              <td>DDD</td> 
              <td>EEE</td> 
          </tr> 
          <tr> 
              <td>FFF</td> 
              <td>GGG</td> 
              <td>HHH</td> 
              <td>III</td> 
              <td>JJJ</td> 
          </tr> 
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ccc</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td>CCC</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td colspan="5">FFFGGGHHHIIIJJJ</td> 
          </tr> 
         
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ccc</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td rowspan="4">CCCHHHcccccc</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td>FFF</td> 
            <td>GGG</td> 
            <td>III</td> 
            <td>JJJ</td> 
          </tr> 
         
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td>CCC</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td>FFF</td> 
            <td>GGG</td> 
            <td>HHH</td> 
            <td>III</td> 
            <td>JJJ</td> 
          </tr> 
    </table> 
    </div> 
    <input type="button" value="另存为 Excel" onclick="saveCode(tableExcel)"> 
    </body> 
    </html>

    希望您可以通过此代码内容得到帮助,谢谢。

    如果您有更多的关于开发类的问题,您可以将您的问题发布到MSDN开发论坛,论坛地址如下:

    https://social.msdn.microsoft.com/Forums/ZH-CN/home?forum=exceldev&filter=alltypes&sort=lastpostdesc


    • 已标记为答案 liubin 2015年4月8日 8:12
    2015年4月8日 6:06

全部回复

  • 您好:

    通过JavaScript来导出数据为excel文档的方法,您可以尝试下此代码:

    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    <title>EB页面导出为EXCEL文档的方法</title> 
    <script type="text/javascript"> 
    <!-- download
    function saveCode(obj) { 
              var winname = window.open('', '_blank', 'top=10000'); 
              var strHTML = document.all.tableExcel.innerHTML; 
              winname.document.open('text/html', 'replace'); 
              winname.document.writeln(strHTML); 
              winname.document.execCommand('saveas','','excel.xls'); 
              winname.close(); 
    } 
    --> 
    </script> 
    </head> 
    
    <body> 
    <div id="tableExcel">  
    <table id="test" width="100%" border="1" cellspacing="0" cellpadding="0"> 
          <tr> 
              <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> 
          </tr> 
          <tr> 
              <td>列标题1</td> 
              <td>列标题2</td> 
              <td>列标题3</td> 
              <td>列标题4</td> 
              <td>列标题5</td> 
          </tr> 
          <tr> 
              <td>aaa</td> 
              <td>bbb</td> 
              <td>ccc</td> 
              <td>ddd</td> 
              <td>eee</td> 
          </tr> 
          <tr> 
              <td>AAA</td> 
              <td>BBB</td> 
              <td>CCC</td> 
              <td>DDD</td> 
              <td>EEE</td> 
          </tr> 
          <tr> 
              <td>FFF</td> 
              <td>GGG</td> 
              <td>HHH</td> 
              <td>III</td> 
              <td>JJJ</td> 
          </tr> 
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ccc</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td>CCC</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td colspan="5">FFFGGGHHHIIIJJJ</td> 
          </tr> 
         
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ccc</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td rowspan="4">CCCHHHcccccc</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td>FFF</td> 
            <td>GGG</td> 
            <td>III</td> 
            <td>JJJ</td> 
          </tr> 
         
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ddd</td> 
            <td>eee</td> 
          </tr> 
          <tr> 
            <td>AAA</td> 
            <td>BBB</td> 
            <td>CCC</td> 
            <td>DDD</td> 
            <td>EEE</td> 
          </tr> 
          <tr> 
            <td>FFF</td> 
            <td>GGG</td> 
            <td>HHH</td> 
            <td>III</td> 
            <td>JJJ</td> 
          </tr> 
    </table> 
    </div> 
    <input type="button" value="另存为 Excel" onclick="saveCode(tableExcel)"> 
    </body> 
    </html>

    希望您可以通过此代码内容得到帮助,谢谢。

    如果您有更多的关于开发类的问题,您可以将您的问题发布到MSDN开发论坛,论坛地址如下:

    https://social.msdn.microsoft.com/Forums/ZH-CN/home?forum=exceldev&filter=alltypes&sort=lastpostdesc


    • 已标记为答案 liubin 2015年4月8日 8:12
    2015年4月8日 6:06
  • 但是这种方法,不能设置excel单元格的格式吧?例如我要将某一列设置为数字格式。

    da jia hao!

    2015年4月8日 8:23
  • 您好:

    关于更多开发类的问题您把帖子发到MSDN论坛问下具体的内容吧。

    链接:https://social.msdn.microsoft.com/Forums/ZH-CN/home?forum=exceldev&filter=alltypes&sort=lastpostdesc

    这个论坛对开发类的问题都不是特别熟悉的。

    谢谢。

    2015年4月9日 1:48