@sheetxl/studio-vanilla
Version:
SheetXL Studio - Vanilla entry point for integrating SheetXL UI.
7 lines (6 loc) • 1.92 kB
JavaScript
;/**
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.7.27
*
* (C) 2025-present SheetXL Inc. & Michael T. Ford
* License: The license can be found at https://www.sheetxl.com/license.
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./Bc1oKNEzl3Kcj4g5.cjs");exports.readBufferCSV=async(i,c)=>{const{papaParseConfig:l,setValuesOptions:g,createWorkbookOptions:f}=c??{},n=c?.progress,h=n?.onProgress,w=await Promise.resolve().then(()=>require("./BZ3XqGYfgrYW4R41.cjs")).then(r=>r.p),o=new TextDecoder().decode(i);let u=-1;const d=new y.by(f),t=d.getSelectedSheet().getEntireRange().startIncrementalUpdates({orientation:y.w.Orientation.Row});let e=0;const m={...l,transform:(r,s)=>{l?.transform&&(r=l.transform(r,s));const a=s;a===0&&u++;let p=r??"";return t.pushAt(u,a,p),e++,e%1e5==0&&h?.(e),r}};return w.parse(o,m).data,t.apply({textParser:!0,...g}),d},exports.writeBufferCSV=async(i,c)=>{const{trimLeadingBlankRow:l=!0,trimLeadingBlankColumn:g=!0,ignoreHidden:f=!1,sheetKey:n=null,papaParseConfig:h={}}=c||{},w=await Promise.resolve().then(()=>require("./BZ3XqGYfgrYW4R41.cjs")).then(s=>s.p);if(!i)throw new Error("workbook must be specified");let o=null;if(n===null?o=i.getSelectedSheet():typeof n=="number"?o=i.getSheets().getItems()[n]:typeof n=="string"&&(o=i.getSheets().getByName(n)),!o)throw new Error("invalid sheetKey specified");let u=null;const d=[];let t=null,e=o.getUsedRange({ignoreHidden:f});if(!e)throw new Error("Nothing to export");if(!l||!g){const s=l?e.getRowStart():0,a=g?e.getColumnStart():0;e=e.getOffsetTo(s,a)}e.forEach((s,a)=>{const p=a.getCoords(),S=a.getCell();u!==p.rowIndex&&(t&&d.push(t),t=[],u=p.rowIndex);const b=S.toTextUnformatted()??"";t.push(b)},{includeEmpty:!0,address:null}),t&&d.push(t);const m={...h},r=w.unparse(d,m);return new TextEncoder().encode(r).buffer};