zipcelx-on-steroids
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/zipcelx-on-steroids package

1.0.4 • Public • Published

zipcelx

version downloads

Generate XLSX files in the browser, with minimal footprint. The vision is to provide the smallest possible package for generating valid XLSX files in the browser.

If you're looking for advanced functionality, js-xlsx is a solid choice.

Fork : https://github.com/egeriis/zipcelx

Table of contents

  1. How to use
  2. The config object
  3. Contributing

New Features

Config

Look here in a meanwhile

Use

    import zipcelx from 'zipcelx-on-steroids'

    zipcelx(config,'export') to save as xlsx
    zipcelx(config, 'blob') to return a blob oject

TypeScript: @types/zipcelx-on-steroids

  declare module "zipcelx-on-steroids" {

    export interface IConfig {
        filename: string;
        sheet: {
            data: any[][];
        };
    }

    export default function zipcelx(config: IConfig, target: 'export' | 'blob'): any;
}

Example

import zipcelx from 'zipcelx-on-steroids';
import download from 'downloadjs';

export type ExportColumn = {
    fieldName: string,
    format: string,
    value: string;
    type: string;
}

export function exportTo(filename: string, columns: ExportColumn[], data: any[], target: 'export' | 'blob') {
    generateFileStructure(filename, columns, data, target);
}

export function generateFileStructure(filename: string, columns: ExportColumn[], data: any[], target: 'export' | 'blob'): any {

    let info: Array<Array<any>> = [ [] ];

    columns.forEach((col: ExportColumn) => {
        info[ 0 ].push({ value: col.value, type: col.type });
    });

    data.forEach((item) => {
        let index = info.push([]);
        for (let [ , value ] of Object.entries(item)) {
            info[ index - 1 ].push({ value: value ? value : '', type: 'string' });
        }
    });

    const config =
    {
        filename: filename,
        sheet: {
            data: info,
        }
    };

    return zipcelx(config, target);
}

export function downloadFile(fileName: string, zipcelFile: any) {
    try {
        if (zipcelFile) {
            var x = new XMLHttpRequest();
            x.open("GET", `/${fileName}`, true);
            x.responseType = "blob";
            x.onload = function (e) {
                download(zipcelFile, fileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            };
            x.send();
        };
    }
    catch (error) {
        console.log(error);
    }
}

Issues

Should it happen that the tool broke down on you please head to our Issue tracker

  1. Search if the issue is already discussed or explained.
  2. If no luck feel free to open a new issue and we will get back to you as soon as possible.

/zipcelx-on-steroids/

    Package Sidebar

    Install

    npm i zipcelx-on-steroids

    Weekly Downloads

    9

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    64 kB

    Total Files

    39

    Last publish

    Collaborators

    • davidramos-om