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.

Readme

Keywords

Package Sidebar

Install

npm i zipcelx-on-steroids

Weekly Downloads

8

Version

1.0.4

License

MIT

Unpacked Size

64 kB

Total Files

39

Last publish

Collaborators

  • davidramos-om