Giter VIP home page Giter VIP logo

xlsx's Introduction

XLSX Build Status GitHub release

XLSX é um bitcode de modelagem de xlsx para thrust que utiliza POI-XSSF como mecanismo de manipulação.

Instalação

Posicionado em um app thrust, no seu terminal:

thrust install xlsx

Tutorial de escrita

//Realizamos o require do bitcode
var xlsx = require('xlsx')

var rows = [{
    id: 1,
    nome: 'Zé',
    dt_nasc: new Date(),
    salario: 1122.5
}, {
    id: 2,
    nome: 'Jão',
    dt_nasc: new Date(),
    salario: 965.7
}, {
    id: 3,
    nome: 'Maria',
    dt_nasc: new Date(),
    salario: 1100.0
}];

/**
 Todo o objeto de metadados é opcional
 Os possiveis estilos de célula são:
  - horizontalAlignment: <String> - left, center, right, fill, justify
  - fontName: <String> Nome da fonte
  - fontSize: <Number> tamanho da fonte
  - fontColor: <String> Cor da Fonte.
  Acesse https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/IndexedColors.html para lista de opções
  - size: <Number> Tamanho da coluna. É utilizado quando a opção autoSize possui o valor `false`,
  - backgroundColor: <String> Cor de fundo da célula. Acesse https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/IndexedColors.html para lista de opções
  - unlocked: <Boolean> Seta a célula como desbloqueada. Só funciona quando uma senha é atribuida para a planilha.
  - verticalAlignment: <String> top, center, bottom
  - formula: <Boolean> Quando ativo pega o valor da célula e aplica como uma fórmula
  - bold: <Boolean> se será negrito ou não.
  - italic: <Boolean> se será itálico ou não
  - striked: <Boolean> se terá strikethrough
  - underline: <Boolean> se terá underline
  - doubleUnderline: <Boolean> se terá double underline.

  Ambas as propriedades headerStyle, style, e objetos de coluna, podem ter estes estilos, sendo que cada um tem precedência sobre o outro, de forma que seja possível realizar uma configuração geral para todos e algumas específicas.

  Precedência de estilos:
   - HEADER: headerStyle, column, style
   - DEMAIS: column, style

 Os objetos de coluna como dito, pode ter as mesma propriedades de estilo citadas acima e além deles:
  - description: <String> - Se presente, irá alterar o header desta coluna
  - format: <String> - Determina a formação da célula
  - type: <String> - Determina os tipos de formatação de uma célula, caso format não tenha sido informado, podendo ser:
    - currency = 'R$ #,##0.00'
    - time = 'HH:MM'
    - date = 'DD/MM/yyyy'
    - datetime = date + time
*/
var metadata = { //Opcional
    hasHeader: true, //Se deverá ser criada uma linha de header
    asByteArray: true, //Se o resultado é um byte[] ou o workbook do POI
    autoSize: true, //Se deve fazer o ajuste automatico de largura das celulas
    headerStyle: { //Estilo que será aplicado ao header, caso exista
        bold: true,
        horizontalAlignment: 'center',
        fontName: 'Colibri'
    },
    rowStyle: { // Estilos específica da linha
        height: 1000 // Altura das linhas da planilha
    }
    style: { //Estilo padrão que será aplicado a todas as celulas
        fontName: 'Courrier New',
    },
    columns: { //Configurações específicas de uma coluna
        id: {
            description: 'Código', //Se presente irá usar esta string como header
            italic: true, //estilo da coluna
        },
        nome: {
            doubleUnderline: true
        },
        dt_nasc: {
            description: 'Dt Nasc.',
            striked: true,
        },
        salario: {
            type: 'currency',
        },
        somatoria: {
            formula: true
        }
    },
    sheetProperties : { // Configurações específicas da sheet
      password: '123', // Senha, que ao ser setada bloqueia toda a planilha. Utilize a propriedade `unlocked` para desbloquear as células de uma coluna
      name: 'Planilha 1' // nome da aba
    }
};

//Para gerar uma planilha
var bytes = xlsx.create(rows, metadata);

//Para salvar os bytes da planilha em um arquivo no disco
xlsx.writeBytesToFile(bytes, './planilha.xlsx');

Tutorial de leitura

//Realizamos o require do bitcode
var xlsx = require('xlsx');

var metadata = { //Opcional
    hasHeader: true //Determina se a sua planilha possui header
}

/*
 O primeiro argumento pode ser:
  -  <String> Path do arquivo
  - <java.io.InputStream> stream da planilha
  - <byte[]> bytes da planilha
*/
var jsonPlanilha = xlsx.read('./planilha.xlsx', metadata);

xlsx's People

Contributors

leonardodelfino avatar brunomachadob avatar brunobrandaosbx avatar

Watchers

 avatar

Forkers

barbosamarlem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.