js导出表格\csv\zip格式文件

最近工作运用到导出zip文件,把自己运用到的方法在这里记录一下

用js导出zip文件

具体JSZip的运用请参考https://stuk.github.io/jszip/官方文档

<button class="layui-btn layui-btn-sm layui-btn-danger" id="export>导出</button>

<script src="/start/layui/js/jszip.js"></script>
<script src="/start/layui/js/FileSaver.js"></script>
$("#export").click(function(){
		var str = "序号,标题,操作类型,操作内容,操作时间\n"
        let i = 0
        for(var item of data ){
          i++
          str += `${i},${item.option_title},${item.option_type},${item.option_msg},${item.ctime},\n`
        }
        var zip = new JSZip()
        zip.file("操作日志.csv",str)
        zip.generateAsync({type:'blob'}).then(function(content){
          saveAs(content,'test.zip')
        })
})
		

用js导出csv文件

<button class="layui-btn layui-btn-sm layui-btn-danger" id="export>导出</button>

$("#export").click(function(){
		var str = "序号,标题,操作类型,操作内容,操作时间\n"
        let i = 0
        for(var item of data ){
          i++
          str += `${i},${item.option_title},${item.option_type},${item.option_msg},${item.ctime},\n`
        }
     if (window.navigator.msSaveOrOpenBlob) {
     // 如果是IE11
     	 let data = "\ufeff" + str;
     	 var blob = new Blob([data], { type: "text/csv,charset=UTF-8" });
     	 // 以本地方式保存文件
     	 navigator.msSaveBlob(blob, `测试.csv`);
    }else{
        let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str)
        var link = document.createElement("a")
        link.href = uri;
        link.download = "测试.csv"
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link)
     }
})

用js导出大量数据csv文件

更多blob用法 请参考blob官方文档

<button class="layui-btn layui-btn-sm layui-btn-danger" id="export>导出</button>

$("#export").click(function(){
		var str = "序号,标题,操作类型,操作内容,操作时间\n"
        let i = 0
        for(var item of data ){
          i++
          str += `${i},${item.option_title},${item.option_type},${item.option_msg},${item.ctime},\n`
        }
        //text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。
        var blob = new Blob([str], {type: "text/plain;charset=utf-8"});  	
		//中文乱码问题
		blob =  new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});  
		var uri = window.URL.createObjectURL(blob); 
		var link = document.createElement("a");
		link.href = uri;
		link.download =  "测试.csv";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link)
})

用js导出xls表格文件

<button class="layui-btn layui-btn-sm layui-btn-danger" id="export>导出</button>

$("#export").click(function(){
		var str = '<tr><td>序号</td><td>标题</td><td>序号</td><td>操作内容</td><td>操作时间</td></tr>'
        let i = 0
        for(var item of data ){
          i++
          str += `<tr><td>${i}</td>,<td>${item.option_title}</td>,<td>${item.option_type}</td>,<td>${item.option_msg}</td>,<td>${item.ctime}</td></tr>`
        }
      var download= '测试'
      var uri = 'data:application/vnd.ms-excel;base64,';
      var template = `<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><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
        <x:Name>${download}</x:Name>
        <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
        </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
        </head><body><table>${str}</table></body></html>`;
      
	  function base64 (s) { return window.btoa(unescape(encodeURIComponent(s)))}
      window.location.href = uri + base64(template);
在C#中导出CSV文件可以使用以下步骤: 1. 创建一个StringBuilder对象来保存CSV文件的内容。 2. 循环遍历表格数据,将每个单元格的值添加到StringBuilder对象中,用逗号分隔。 3. 在每行的末尾添加换行符。 4. 将StringBuilder对象中的内容写入CSV文件中。 下面是一个简单的示例代码: ``` using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CsvExportExample { class Program { static void Main(string[] args) { // 创建一个DataTable对象,模拟表格数据 DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Age"); dt.Columns.Add("Gender"); dt.Rows.Add("Tom", 25, "Male"); dt.Rows.Add("Jerry", 30, "Male"); dt.Rows.Add("Lucy", 28, "Female"); // 创建一个StringBuilder对象,保存CSV文件的内容 StringBuilder sb = new StringBuilder(); // 遍历表格数据,将每个单元格的值添加到StringBuilder对象中 foreach (DataRow row in dt.Rows) { foreach (var item in row.ItemArray) { sb.Append(item.ToString() + ","); } sb.Append(Environment.NewLine); } // 将StringBuilder对象中的内容写入CSV文件中 File.WriteAllText(@"D:\test.csv", sb.ToString(), Encoding.UTF8); Console.WriteLine("CSV文件导出。"); Console.ReadLine(); } } } ``` 在上面的代码中,我们首先创建了一个DataTable对象来模拟表格数据。然后,我们创建了一个StringBuilder对象来保存CSV文件的内容。接着,我们遍历表格数据,将每个单元格的值添加到StringBuilder对象中,并在每行的末尾添加换行符。最后,我们将StringBuilder对象中的内容写入CSV文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值