zoukankan      html  css  js  c++  java
  • web 前端导出excel

    一.导出文件,使用web 前端,在firefox 和Chrome 中使用  a 标签(或者js)就可以实现,如下:其中,

    1. download 设置下载的文件名。

    2. href 加上 data:text/txt;charset=utf-8  分别设置点击link 是下载文件, 编码是utf-8 . 这个逗号后面的就是保存在文件中的内容了

    <html>
    <head>
    </head>
    <body>
    <a id="test" download="download.txt" href="data:text/txt;charset=utf-8,My name is LiHuan">download</a>
    </body>
    </html>

    二.

    csv 文件可以用Excel打开, 如果是导出一个table 的话,使用Excel 就方便很多了。

    问题是: 如何分行, 分列?

    理论上 : 分列使用 , 号分割, 分行用 .

    可以用以上方式,会发现列可以分开,但是不换行。 看上去不认识 .

    解决方式是使用 encodeURIComponent 进行编码/
    ————————————————

    以上使用的都是utf-8 编码,理论上导出中文应该不是问题。

    但是导出csv 格式的话, 使用Excel 打开会发现中文是乱码,但是用其他文本程序打开确是正常的。

    原因就是少了一个 BOM头 。  ufeff。

    加上一切都正常了,

    ————————————————

    这里有两个改变

    1. 页面的charset 需设置成gb2312

    2. 加上 ufeff BOM 头

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <meta name="author" content="oscar999">
      <title>
      </title>
    <script>
    function clickDownload(aLink){
    	var str="栏位1,col2,col3
    value1,value2,value3";
    	str = encodeURIComponent(str);
    	aLink.href="data:text/csv;charset=utf-8, ufeff"+str;
    	aLink.click();
    }
    </script>
    </head>
    <body>
    <a id="test" download="download.csv" onclick="clickDownload(this)" href="#">download</a>
    </body>
    </html>
    

      

      

  • 相关阅读:
    WCF寻址
    WCF之多个协定
    WCF之多个终结点
    WCF客户端和服务端配置
    VS2012新建项目出错:未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
    windows运行打开服务命令
    Android中 服务里的方法抽取成接口
    Android Studio 使用genymotion 模拟器运行app时 提示找不到任何设备
    SVN 首次用TortoiseSVN Checkout 提示Unexpected HTTP status 405
    jQuery EasyUI -onblu、onkeyup等事件
  • 原文地址:https://www.cnblogs.com/treeleaf/p/12460345.html
Copyright © 2011-2022 走看看