UNPKG

@sheetxl/io

Version:

IO - Import/Export Libraries for SheetXL.

7 lines (6 loc) 1.88 kB
"use strict";/** * @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.4.0 * * (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 S=require("@sheetxl/sdk");exports.fromBufferCSV=async(a,d)=>{const{papaParseConfig:i,setValuesOptions:p,constructorOptions:h}=d??{},o=await Promise.resolve().then(()=>require("./DUC60xlPxiANFs9f.cjs")).then(n=>n.papaparse_min),m=new TextDecoder().decode(a);let f=-1;const t=new S.Workbook(h),u=t.getSelectedSheet().getEntireRange().startIncrementalUpdates({orientation:S.IRange.Orientation.Row}),c=d?.onProgress;let e=0;const r={...i,transform:(n,g)=>{i?.transform&&(n=i.transform(n,g));const s=g;s===0&&f++;let l=n??"";return u.pushAt(f,s,l),e++,e%1e5==0&&c?.(e),n}};return o.parse(m,r).data,u.apply({textParser:!0,...p}),t},exports.toBufferCSV=async(a,d)=>{const{trimLeadingBlankRow:i=!0,trimLeadingBlankColumn:p=!0,excludeHidden:h=!1,sheetKey:o=null,papaParseConfig:m={}}=d||{},f=await Promise.resolve().then(()=>require("./DUC60xlPxiANFs9f.cjs")).then(s=>s.papaparse_min);if(!a)throw new Error("workbook must be specified");let t=null;if(o===null?t=a.getSelectedSheet():typeof o=="number"?t=a.getSheets().search()[o]:typeof o=="string"&&(t=a.getSheets().getByName(o)),!t)throw new Error("invalid sheetKey specified");let u=null;const c=[];let e=null,r=t.getUsedRange({excludeHidden:h});if(!r)throw new Error("Nothing to export");if(!i||!p){const s=i?r.getRowStart():0,l=p?r.getColumnStart():0;r=r.getOffsetTo(s,l)}r.forEach((s,l)=>{const w=l.getCoords(),y=l.getCell();u!==w.rowIndex&&(e&&c.push(e),e=[],u=w.rowIndex);const x=y.toTextUnformatted()??"";e.push(x)},{includeEmpty:!0,address:null}),e&&c.push(e);const n={...m},g=f.unparse(c,n);return new TextEncoder().encode(g).buffer};