sheetjs-clone/odsbits/85_write.js
SheetJS 86d6a093f0 version bump 0.8.2: ODS and cleanup
- 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 , closes )

README issues:

|  id  | author         | comment                                      |
|-----:|:---------------|:---------------------------------------------|
|  | @sao93859      | closes                                   |
|  | @alexanderchan | closes  corrected examples               |
|  | @cskaandorp    | changed saveAs example to match write tests  |
|  | @dskrvk        | added note about s2roa h/t @LeonardoPatignio |
|  | @jimmywarting  | closes  adapted rABS examples with rAAS  |

ODS file format issues:

|  id  | author         | comment                                      |
|-----:|:---------------|:---------------------------------------------|
|  | @user4815162342| closes  h/t @ziacik                      |
|  | @paulproteus   | closes  rudimentary ODS write support    |
|  | @ziacik        | closes                                   |
|  | @ziacik        | closes  use JSON when available          |
|  | @ziacik        | closes                                   |
|  | @think01       | closes                                   |
|  | @mdamt         | closes  duplicate cells should be copied |
|  | @RB-Lab        | closes                                   |
|  | @lgodard       | closes  thanks to other changes          |
2017-02-03 15:50:45 -05:00

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;
}