All Projects → unidoc → Unioffice

unidoc / Unioffice

Licence: other
Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Unioffice

Documentserver
ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time.
Stars: ✭ 2,335 (-24.94%)
Mutual labels:  excel, spreadsheet, xlsx, word, docx, pptx
Excelize
Golang library for reading and writing Microsoft Excel™ (XLSX) files.
Stars: ✭ 10,286 (+230.63%)
Mutual labels:  excel, xlsx, spreadsheet, ooxml, openoffice, ecma-376
Desktopeditors
An office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents
Stars: ✭ 1,008 (-67.6%)
Mutual labels:  excel, spreadsheet, xlsx, word, docx
Gotenberg
A Docker-powered stateless API for PDF files.
Stars: ✭ 3,272 (+5.18%)
Mutual labels:  docx, excel, word, xlsx, pptx
Documentbuilder
ONLYOFFICE Document Builder is powerful text, spreadsheet, presentation and PDF generating tool
Stars: ✭ 61 (-98.04%)
Mutual labels:  excel, spreadsheet, xlsx, word, docx
Docxtemplater
Generate docx pptx and xlsx (Microsoft Word, Powerpoint, Excel documents) from templates, from Node.js, the Browser and the command line / Demo: https://www.docxtemplater.com/demo
Stars: ✭ 1,990 (-36.03%)
Mutual labels:  excel, powerpoint, word, docx, pptx
xlsx reader
A production-ready XLSX file reader for Elixir.
Stars: ✭ 46 (-98.52%)
Mutual labels:  excel, xlsx, spreadsheet, openoffice
BulkPDF
BulkPDF is a free and easy to use open source software, which allows to automatically fill an existing PDF form with differen values. Only a spreadsheet (Microsoft Excel 2007/2010/2013, LibreOffice or OpenOffice Calc) with the desired values is required.
Stars: ✭ 94 (-96.98%)
Mutual labels:  excel, spreadsheet, openoffice
modern-office-git-diff
An experiment in tracking and diffing versions of modern Microsoft Office files in Git.
Stars: ✭ 51 (-98.36%)
Mutual labels:  xlsx, docx, pptx
EPPlus4PHP
an easy-to-use excel library for php project which is compiled with peachpie. NOT FOR THE COMMON PHP PROJECT!
Stars: ✭ 15 (-99.52%)
Mutual labels:  excel, spreadsheet, ooxml
Rage
Rage allows you to execute any file in a Microsoft Office document.
Stars: ✭ 68 (-97.81%)
Mutual labels:  excel, word, powerpoint
umya-spreadsheet
A pure rust library for reading and writing spreadsheet files
Stars: ✭ 79 (-97.46%)
Mutual labels:  excel, xlsx, spreadsheet
spreadsheet
Yii2 extension for export to Excel
Stars: ✭ 79 (-97.46%)
Mutual labels:  excel, xlsx, spreadsheet
craXcel-cli
Command line application to unlock Microsoft Office password protected files.
Stars: ✭ 44 (-98.59%)
Mutual labels:  excel, word, powerpoint
opentbs
With OpenTBS you can merge OpenOffice - LibreOffice and Ms Office documents with PHP using the TinyButStrong template engine. Simple use OpenOffice - LibreOffice or Ms Office to edit your templates : DOCX, XLSX, PPTX, ODT, OSD, ODP and other formats. That is the Natural Template philosophy.
Stars: ✭ 48 (-98.46%)
Mutual labels:  xlsx, docx, pptx
sheet2dict
Simple XLSX and CSV to dictionary converter
Stars: ✭ 206 (-93.38%)
Mutual labels:  excel, xlsx, spreadsheet
XToolset
Typed import, and export XLSX spreadsheet to JS / TS. Template-based create, render, and export data into excel files.
Stars: ✭ 110 (-96.46%)
Mutual labels:  excel, xlsx, spreadsheet
com.elovirta.ooxml
DITA to Word plug-in
Stars: ✭ 19 (-99.39%)
Mutual labels:  word, docx, ooxml
excel validator
Python script to validate data in Excel files
Stars: ✭ 14 (-99.55%)
Mutual labels:  excel, xlsx, spreadsheet
fxl.js
ƛ fxl.js is a data-oriented JavaScript spreadsheet library. It provides a way to build spreadsheets using modular, lego-like blocks.
Stars: ✭ 27 (-99.13%)
Mutual labels:  excel, xlsx, spreadsheet

unioffice is a library for creation of Office Open XML documents (.docx, .xlsx and .pptx). Its goal is to be the most compatible and highest performance Go library for creation and editing of docx/xlsx/pptx files.

Build Status GitHub (pre-)release License: UniDoc EULA ApiDocs

https://github.com/unidoc/unioffice/

Status

  • Documents (docx) [Word]
    • Read/Write/Edit
    • Formatting
    • Images
    • Tables
    • Word to PDF (docx to pdf)
  • Spreadsheets (xlsx) [Excel]
    • Read/Write/Edit
    • Cell formatting including conditional formatting
    • Cell validation (drop down combobox, rules, etc.)
    • Retrieve cell values as formatted by Excel (e.g. retrieve a date or number as displayed in Excel)
    • Formula Evaluation (100+ functions supported currently, more will be added as required)
    • Embedded Images
    • All chart types
  • PowerPoint (pptx) [PowerPoint]
    • Creation from templates
    • Textboxes/shapes

Performance

There has been a great deal of interest in performance numbers for spreadsheet creation/reading lately, so here are unioffice numbers for this benchmark which creates a sheet with 30k rows, each with 100 columns.

creating 30000 rows * 100 cells took 3.92506863s
saving took 89ns
reading took 9.522383048s

Creation is fairly fast, saving is very quick due to no reflection usage, and reading is a bit slower. The downside is that the binary is large (33MB) as it contains generated structs, serialization and deserialization code for all of DOCX/XLSX/PPTX.

Installation

go get github.com/unidoc/unioffice/

License key

This software package (unioffice) is a commercial product and requires a license code to operate.

To Get a Metered License API Key in the Free Tier, sign up on https://cloud.unidoc.io

Document Examples

Spreadsheet Examples

Presentation Examples

Raw Types

The OOXML specification is large and creating a friendly API to cover the entire specification is a very time consuming endeavor. This library attempts to provide an easy to use API for common use cases in creating OOXML documents while allowing users to fall back to raw document manipulation should the library's API not cover a specific use case.

The raw XML based types reside in the schema/ directory. These types are accessible from the wrapper types via a X() method that returns the raw type.

For example, the library currently doesn't have an API for setting a document background color. However it's easy to do manually via editing the CT_Background element of the document.

dox := document.New()
doc.X().Background = wordprocessingml.NewCT_Background()
doc.X().Background.ColorAttr = &wordprocessingml.ST_HexColor{}
doc.X().Background.ColorAttr.ST_HexColorRGB = color.RGB(50, 50, 50).AsRGBString()

Contribution guidelines

If you are interested in contributing, please contact us.

Support and consulting

Please email us at [email protected] for any queries.

If you have any specific tasks that need to be done, we offer consulting in certain cases. Please contact us with a brief summary of what you need and we will get back to you with a quote, if appropriate.

License agreement

The use of this software package is governed by the end-user license agreement (EULA) available at: https://unidoc.io/eula/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].