Giter Site home page Giter Site logo

captainpast / scriptoffice.js Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 179 KB

mirror: https://gitlab.com/Captainpast/scriptoffice.js a library to create files of an office software suite like LibreOffice programmcity and automated

License: MIT License

JavaScript 3.40% TypeScript 96.60%
automation javascript library libreoffice office

scriptoffice.js's Introduction

ScriptOffice for JavaScript

scriptOffice.js

Version Downloads

a library to create files of an office software suite like LibreOffice programmcity and automated

Using

NPM / YARN / PNPM

run one of the command in your nodejs project

$ npm i script-office
$ yarn add script-office
$ pnpm add script-office

add to file

import { OfficeDocument } from "script-office";

CDN

add to html head

<script src="https://cdn.jsdelivr.net/npm/script-office/dist/script-office.umd.js"></script>

Documentation

Spreadsheet

creating a new document

var doc = OfficeDocument.create({ type: "spreadsheet" });
// or
var doc = OfficeDocument.create("spreadsheet");

// get the active and only sheet of the document
var sheet = doc.activeSheet;

importing an existing document

currently not supported

working with sheets

a spreadsheet can have multiple sheets

// get the current and active sheet
var sheet = doc.activeSheet;

// create sheet
var sheet = doc.addSheet("first");

// get sheet by index
var sheet = doc.getSheet(1);
// get sheet by name 
var sheet = doc.getSheet("first");

// set title
sheet.title = "first";

working with cells

single cell

// get cell
var cell = sheet.getCell("A1")
var cell = sheet.getCell({ col: "A", row: 1 })
var cell = sheet.getCell({ col: 1, row: 1 })

// set value
cell.value = "test";
cell.value = 2000;
cell.value = new Date();

// change style
cell.style.bold = true;
cell.style.italic = true;
cell.style.underline = "solid";
cell.style.underlineColor = "#ff0000";
cell.style.color = "reb(255,0,0)";
cell.style.backgroundColor = "red";
cell.style.columnWidth = 20;
cell.style.rowHeight = 10;

// at once
sheet.setCell("A1", {
  value: "test",
  style: {
    bold: true,
    underline: "dash"
  }
})

multiple cells

// get cells content
var content = sheet.getCells("A1:B3").map(c => c.value)

// set cells
sheet.setCells("A1:B3", { style: { backgroundColor: "#ff0000" } })

specials

sheet.freezeAt("A1")
sheet.autoFilter("A1", "K9")

export

there a several export formats:

OpenDocument spreadsheet (ods)

var data = await doc.export("ods", {
    compressionLevel: 9
});
fs.writeFileSync(path.join(__dirname, "test.ods"), Buffer.from(data))

Comma-separated values (csv)

only one sheet of the SpreadsheetDocument can be exported

var data = await doc.export("csv", {
    separator: ";",
    useQuotes: true,
    sheet: "name or index of the sheet"
});
fs.writeFileSync(path.join(__dirname, "test.csv"), data)

OfficeOpen spreadsheet (xlsx)

the export is very basic and not supports styles

var data = await doc.export("xlsx", {
    compressionLevel: 9
});
fs.writeFileSync(path.join(__dirname, "test.xlsx"), Buffer.from(data))

Build with webpack

cloning git repo and install dependencies

$ git clone https://gitlab.com/Captainpast/scriptoffice.js
$ cd scriptoffice.js
$ npm install

run dist script to create a minified and compact version

$ npm run dist

The release is now in the ./dist folder and can be imported.

import { OfficeDocument } from "./dist/script-office.min.js";

or

<script src="./dist/script-office.min.js"></script>

Roadmap

  • html export
  • imports
  • texts, drawings, presentations

scriptoffice.js's People

Contributors

captainpast avatar

Stargazers

 avatar

Watchers

Kostas Georgiou avatar  avatar

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.