2025年4月1日 星期二 乙巳(蛇)年 正月初二 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Html+Div+Css(前端)

通过浏览器导出文件

时间:03-22来源:作者:点击数:9
CDSY,CDSY.XYZ

通过浏览器导出文件

fileCreater.js

  • //文件导出:二进制数据文件化, Chrome有效,别的浏览器支持未知
  • //data:String BASE64编码的字符串
  • //fileName:String 文件名,包含文件类型(如:xxx.xls)
  • export function fileExport(data, fileName){
  • if(data == null){
  • return
  • }
  • if(!fileName){
  • fileName = 'file_'+now()+'.xls'
  • }else{
  • if(fileName.indexOf('${now}') !== -1){
  • fileName = fileName.replace('${now}',now());
  • }
  • }
  • //拿到文件名的后缀
  • let fileNameArray=fileName.split(".")
  • let fileType=fileNameArray[fileNameArray.length-1];
  • console.log(fileType);
  • let contentType="application/vnd.ms-excel";
  • switch(fileType){
  • case "xls":
  • contentType="application/vnd.ms-excel";
  • break;
  • case "xlsx":
  • contentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
  • break;
  • case "csv":
  • contentType="text/csv";
  • break;
  • }
  • let binStr = window.atob(data),
  • n = binStr.length,
  • u8arr = new Uint8Array(n);
  • while (n--) {
  • u8arr[n] = binStr.charCodeAt(n);
  • }
  • const blob = new Blob([u8arr], {type: contentType});
  • const url = URL.createObjectURL(blob);
  • const a = document.createElement('a');
  • a.href = url;
  • a.download = fileName;
  • a.click();
  • window.URL.revokeObjectURL(url);
  • }
  • function now(){
  • const now = new Date();
  • let year = now.getFullYear(),
  • month = now.getMonth()+1,
  • date = now.getDate(),
  • hour = now.getHours(),
  • min = now.getMinutes(),
  • sec = now.getSeconds();
  • month = month<10 ? '0'+month : month;
  • date = date<10 ? '0'+date : date;
  • hour = hour<10 ? '0'+hour : hour;
  • min = min<10 ? '0'+min : min;
  • sec = sec<10 ? '0'+sec : sec;
  • return ''+year+month+date+hour+min+sec;
  • }

使用fileCreater.js

  • import { fileExport } from "./fileCreater"
  • //data来自ajax请求的BASE64字符串
  • fileExport(data, "文件名[${now}].xls")
CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:单行/多行文本溢出显示省略号 下一篇:很抱歉没有了
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐