forked from sheetjs/sheetjs
SheetJS
86d6a093f0
- README and example cleanup - basic XLSB and ODS write support - flow typecheck for ODS file Note: xlsx.js flow fails: https://github.com/facebook/flow/issues/380 - exposed jszip compression (fixes #220, closes #284) README issues: | id | author | comment | |-----:|:---------------|:---------------------------------------------| | #202 | @sao93859 | closes #202 | | #211 | @alexanderchan | closes #211 corrected examples | | #327 | @cskaandorp | changed saveAs example to match write tests | | #424 | @dskrvk | added note about s2roa h/t @LeonardoPatignio | | #496 | @jimmywarting | closes #496 adapted rABS examples with rAAS | ODS file format issues: | id | author | comment | |-----:|:---------------|:---------------------------------------------| | #148 | @user4815162342| closes #148 h/t @ziacik | | #166 | @paulproteus | closes #166 rudimentary ODS write support | | #177 | @ziacik | closes #177 | | #179 | @ziacik | closes #179 use JSON when available | | #317 | @ziacik | closes #317 | | #328 | @think01 | closes #328 | | #383 | @mdamt | closes #383 duplicate cells should be copied | | #430 | @RB-Lab | closes #430 | | #546 | @lgodard | closes #546 thanks to other changes |
30 lines
760 B
JavaScript
30 lines
760 B
JavaScript
function write_ods(wb/*:any*/, opts/*:any*/) {
|
|
/*:: if(!jszip) throw new Error("JSZip is not available"); */
|
|
var zip = new jszip();
|
|
var f = "";
|
|
|
|
var manifest/*:Array<Array<string> >*/ = [];
|
|
var rdf = [];
|
|
|
|
/* 3:3.3 and 2:2.2.4 */
|
|
f = "mimetype";
|
|
zip.file(f, "application/vnd.oasis.opendocument.spreadsheet");
|
|
|
|
/* Part 2 Section 2.2 Documents */
|
|
f = "content.xml";
|
|
zip.file(f, write_content_xml(wb, opts));
|
|
manifest.push([f, "text/xml"]);
|
|
rdf.push([f, "ContentFile"]);
|
|
|
|
/* Part 3 Section 6 Metadata Manifest File */
|
|
f = "manifest.rdf";
|
|
zip.file(f, write_rdf(rdf, opts));
|
|
manifest.push([f, "application/rdf+xml"]);
|
|
|
|
/* Part 3 Section 4 Manifest File */
|
|
f = "META-INF/manifest.xml";
|
|
zip.file(f, write_manifest(manifest, opts));
|
|
|
|
return zip;
|
|
}
|