使用javascript创建csv文件,压缩它,然后下载
我是javascript新手,但通过谷歌搜索,我看到了创建CSV文件和压缩文件的代码。它们都很好用。创建CSV文件的代码不会对其进行压缩,创建zip文件的代码也不会创建CSV文件。我需要合并这两个代码,这样我就可以从网页创建一个CSV文件,压缩它,然后允许用户下载它。我尝试过使用blob变量,但没有成功。 下面是我用来创建CSV文件的代码 归功于使用javascript创建csv文件,压缩它,然后下载,javascript,export-to-csv,jszip,Javascript,Export To Csv,Jszip,我是javascript新手,但通过谷歌搜索,我看到了创建CSV文件和压缩文件的代码。它们都很好用。创建CSV文件的代码不会对其进行压缩,创建zip文件的代码也不会创建CSV文件。我需要合并这两个代码,这样我就可以从网页创建一个CSV文件,压缩它,然后允许用户下载它。我尝试过使用blob变量,但没有成功。 下面是我用来创建CSV文件的代码 归功于 等级 名称 要点 团队 1. 史蒂文·索托 2,462 蓝色 2. 阿尔弗雷德,海因斯 1,930 蓝色 3. 杰夫,“冠军”福斯特 1,656 红
等级
名称
要点
团队
1.
史蒂文·索托
2,462
蓝色
2.
阿尔弗雷德,海因斯
1,930
蓝色
3.
杰夫,“冠军”福斯特
1,656
红色
导出到CSV
const dataTable=document.getElementById(“dataTable”);
const btnExportToCsv=document.getElementById(“btnExportToCsv”);
btnExportToCsv.addEventListener(“单击”,()=>{
const exporter=new TableCSVExporter(数据表);
const csvOutput=exporter.convertToCSV();
const csvBlob=新Blob([csvOutput],{type:“text/csv”});
const blobUrl=URL.createObjectURL(csvBlob);
const anchoreElement=document.createElement(“a”);
anchoreElement.href=blobUrl;
anchoreElement.download=“table export.csv”;
AnchoreElement.click();
设置超时(()=>{
revokeObjectURL(blobUrl);
}, 500);
});
下面是使用JSZip压缩文件的代码
<script src="scripts/jszip.js"></script>
<script src="scripts/FileSaver.js"></script>
<script type="text/javascript">function pack(){
const URLS = [
'https://vr.josh.earth/assets/2dimages/saturnv.jpg'//,
//'https://vr.josh.earth/assets/360images/hotel_small.jpg'
]
saveToZip('project.zip',URLS)
function saveToZip (filename, urls) {
const zip = new JSZip()
const folder = zip.folder('project')
urls.forEach((url)=> {
const blobPromise = fetch(url).then(r => {
if (r.status === 200) return r.blob()
return Promise.reject(new Error(r.statusText))
})
const name = url.substring(url.lastIndexOf('/'))
folder.file(name, blobPromise)
})
zip.generateAsync({type:"blob"})
.then(blob => saveAs(blob, filename))
.catch(e => console.log(e));
}}
函数包(){
常量URL=[
'https://vr.josh.earth/assets/2dimages/saturnv.jpg'//,
//'https://vr.josh.earth/assets/360images/hotel_small.jpg'
]
saveToZip('project.zip',URL)
函数saveToZip(文件名、URL){
const-zip=new-JSZip()
const folder=zip.folder('项目')
url.forEach((url)=>{
constBlobPromise=fetch(url)。然后(r=>{
if(r.status==200)返回r.blob()
返回承诺。拒绝(新错误(r.statusText))
})
const name=url.substring(url.lastIndexOf('/'))
folder.file(名称,blobPromise)
})
generateAsync({type:“blob”})
.then(blob=>saveAs(blob,文件名))
.catch(e=>console.log(e));
}}
如何使用此代码创建CSV文件、压缩文件,然后从网站下载压缩文件?有没有其他更有效的方法
<script src="scripts/jszip.js"></script>
<script src="scripts/FileSaver.js"></script>
<script type="text/javascript">function pack(){
const URLS = [
'https://vr.josh.earth/assets/2dimages/saturnv.jpg'//,
//'https://vr.josh.earth/assets/360images/hotel_small.jpg'
]
saveToZip('project.zip',URLS)
function saveToZip (filename, urls) {
const zip = new JSZip()
const folder = zip.folder('project')
urls.forEach((url)=> {
const blobPromise = fetch(url).then(r => {
if (r.status === 200) return r.blob()
return Promise.reject(new Error(r.statusText))
})
const name = url.substring(url.lastIndexOf('/'))
folder.file(name, blobPromise)
})
zip.generateAsync({type:"blob"})
.then(blob => saveAs(blob, filename))
.catch(e => console.log(e));
}}