解凍したxlsxファイルがあります。新しいデータを含む新しいxlsxファイルを生成できるようにファイルを編集します。私はちょうどターミナルに入るとのxlsxファイルがあるフォルダにnode.js(Electron)を使用して圧縮されていないxlsxファイルを圧縮
find . -type f | xargs zip ../newfile.xlsx
を入力する必要がXLSX内のファイルを再圧縮するために、Linuxで 。 ここで、node.jsを使ってどうすればいいですか?
解凍したxlsxファイルがあります。新しいデータを含む新しいxlsxファイルを生成できるようにファイルを編集します。私はちょうどターミナルに入るとのxlsxファイルがあるフォルダにnode.js(Electron)を使用して圧縮されていないxlsxファイルを圧縮
find . -type f | xargs zip ../newfile.xlsx
を入力する必要がXLSX内のファイルを再圧縮するために、Linuxで 。 ここで、node.jsを使ってどうすればいいですか?
ソリューションは、我々は、ファイルが破損しているフォルダを圧縮しようとした場合、何らかの理由で、XLSXに含まれるファイルの直接の一覧を圧縮することです。あなたはJSZIPが
var fs = require('fs');
var JSZip = require("jszip");
var zip = new JSZip();
var file = [];
file.push("_rels/.rels");
file.push("docProps/core.xml");
file.push("docProps/app.xml");
file.push("docProps/custom.xml");
file.push("[Content_Types].xml");
file.push("xl/_rels/workbook.xml.rels");
file.push("xl/styles.xml");
file.push("xl/pivotTables/_rels/pivotTable3.xml.rels");
file.push("xl/pivotTables/_rels/pivotTable1.xml.rels");
file.push("xl/pivotTables/_rels/pivotTable2.xml.rels");
file.push("xl/pivotTables/pivotTable3.xml");
file.push("xl/pivotTables/pivotTable1.xml");
file.push("xl/pivotTables/pivotTable2.xml");
file.push("xl/workbook.xml");
file.push("xl/worksheets/_rels/sheet2.xml.rels");
file.push("xl/worksheets/_rels/sheet1.xml.rels");
file.push("xl/worksheets/_rels/sheet3.xml.rels");
file.push("xl/worksheets/sheet4.xml");
file.push("xl/worksheets/sheet1.xml");
file.push("xl/worksheets/sheet3.xml");
file.push("xl/worksheets/sheet2.xml");
file.push("xl/sharedStrings.xml");
file.push("xl/pivotCache/_rels/pivotCacheDefinition1.xml.rels");
file.push("xl/pivotCache/pivotCacheDefinition1.xml");
file.push("xl/pivotCache/pivotCacheRecords1.xml");
for (var i = 0; i < file.length; i++) {
zip.file(file[i], fs.readFileSync("/home/user/xlsx_FILES/"+file[i]));
}
zip.generateAsync({type:"blob"}).then(function(content) {
// see FileSaver.js
saveAs(content, "yourfile.xlsx");
});
nodejsの圧縮ライブラリであるarchiverを見てください。彼らは包括的であるように図書館のためのdocsは見える。ライブラリを使用すると、アーカイブを追加し、新しいアーカイブを追加して作成するためのAPIをストリーミングすることもできます。
以下は、ドキュメントのスニペットで、ライブラリの使用方法を示しています。
// require modules
var fs = require('fs');
var archiver = require('archiver');
// create a file to stream archive data to.
var output = fs.createWriteStream(__dirname + '/example.zip');
var archive = archiver('zip', {
store: true // Sets the compression method to STORE.
});
// listen for all archive data to be written
output.on('close', function() {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
// good practice to catch this error explicitly
archive.on('error', function(err) {
throw err;
});
// pipe archive data to the file
archive.pipe(output);
それは大量の圧縮に適しています使用している場合が、破損したファイルをXLSXに戻って圧縮しようとしたとき
のコードは次のようになります。 –
私はなぜだろうか? OPにコードを追加できますか? –
解決策を見つけました。私は答えとして投稿しました。 –