All Projects → Vatavuk → Excel Io

Vatavuk / Excel Io

Licence: mit
Object-oriented java Excel library

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Excel Io

Fast Excel
🦉 Fast Excel import/export for Laravel
Stars: ✭ 1,183 (+1456.58%)
Mutual labels:  excel, xlsx
Myexcel
MyExcel, a new way to operate excel!
Stars: ✭ 1,198 (+1476.32%)
Mutual labels:  excel, xlsx
Xlsx Populate
Excel XLSX parser/generator written in JavaScript with Node.js and browser support, jQuery/d3-style method chaining, encryption, and a focus on keeping existing workbook features and styles in tact.
Stars: ✭ 668 (+778.95%)
Mutual labels:  excel, xlsx
Excelize
Golang library for reading and writing Microsoft Excel™ (XLSX) files.
Stars: ✭ 10,286 (+13434.21%)
Mutual labels:  excel, xlsx
Documentbuilder
ONLYOFFICE Document Builder is powerful text, spreadsheet, presentation and PDF generating tool
Stars: ✭ 61 (-19.74%)
Mutual labels:  excel, xlsx
Reogrid
Fast and powerful .NET spreadsheet component, support data format, freeze, outline, formula calculation, chart, script execution and etc. Compatible with Excel 2007 (.xlsx) format and working on .NET 3.5 (or client profile), WPF and Android platform.
Stars: ✭ 532 (+600%)
Mutual labels:  excel, xlsx
Rows
A common, beautiful interface to tabular data, no matter the format
Stars: ✭ 739 (+872.37%)
Mutual labels:  excel, xlsx
Easyexcel
快速、简单避免OOM的java处理Excel工具
Stars: ✭ 22,133 (+29022.37%)
Mutual labels:  excel, xlsx
Xlnt
📊 Cross-platform user-friendly xlsx library for C++11+
Stars: ✭ 876 (+1052.63%)
Mutual labels:  excel, xlsx
Pyexcel
Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files
Stars: ✭ 902 (+1086.84%)
Mutual labels:  excel, xlsx
Docjure
Read and write Office documents from Clojure
Stars: ✭ 510 (+571.05%)
Mutual labels:  excel, xlsx
Desktopeditors
An office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents
Stars: ✭ 1,008 (+1226.32%)
Mutual labels:  excel, xlsx
Better Xlsx
A better xlsx library.
Stars: ✭ 395 (+419.74%)
Mutual labels:  excel, xlsx
Readxl
Read excel files (.xls and .xlsx) into R 🖇
Stars: ✭ 585 (+669.74%)
Mutual labels:  excel, xlsx
Pyexcelerate
Accelerated Excel XLSX Writing Library for Python 2/3
Stars: ✭ 384 (+405.26%)
Mutual labels:  excel, xlsx
Sheetjs
📗 SheetJS Community Edition -- Spreadsheet Data Toolkit
Stars: ✭ 28,479 (+37372.37%)
Mutual labels:  excel, xlsx
Npoi.mapper
Use this tool to import or export data with Excel file. The tool is a convention based mapper between strong typed object and Excel data via NPOI.
Stars: ✭ 348 (+357.89%)
Mutual labels:  excel, xlsx
Meza
A Python toolkit for processing tabular data
Stars: ✭ 374 (+392.11%)
Mutual labels:  excel, xlsx
Tableexport
The simple, easy-to-implement library to export HTML tables to xlsx, xls, csv, and txt files.
Stars: ✭ 781 (+927.63%)
Mutual labels:  excel, xlsx
Luckysheet
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.
Stars: ✭ 9,772 (+12757.89%)
Mutual labels:  excel, xlsx

Excel-io

Java excel library (Apache POI inside)

EO principles respected here DevOps By Rultor.com

Build Status Javadocs Maven Central License

Test Coverage SonarQube

This is an object-oriented java library for reading and writing Microsoft Office Excel spreadsheets. It is a wrapper around Apache POI that provides elegant and user friendly interface for creating Excel documents.

How to use. Latest version here

<dependency>
    <groupId>hr.com.vgv</groupId>
    <artifactId>excel-io</artifactId>
</dependency>

Java version required: 1.8+.

Create spreadsheet

new XsWorkbook(
    new XsSheet(
        new XsRow()
            .with(new TextCells("name", "email", "salary", "bonus", "total"))
            .with(
                new XsStyle(
                    new ForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()),
                    new FillPattern(FillPatternType.SOLID_FOREGROUND)
                )
            ),
        new XsRow()
            .with(new TextCells("Steve Hook", "[email protected]"))
            .with(new NumberCells(160000.0, 35337.6))
            .with(new FormulaCell("SUM(C3:D3)")
                .with(
                    new XsStyle(
                        new ForegroundColor(IndexedColors.RED.getIndex()),
                        new FillPattern(FillPatternType.SOLID_FOREGROUND)
                    )
                )
            )
            .with(new XsProps<>(new Height((short) 500)))
    )
).saveTo("Test.xlsx");

This is how the result looks like:

Read and modify spreadsheet

Read from "Test.xlsx" file and modify cell int the second row/first column.

new XsWorkbook("Test.xlsx")
    .with(new XsSheet.ReadFrom(0)
        .with(
            new XsRow(2,
                new TextCell(1, "UPDATED")
            )
        )
    ).saveTo("Updated.xlsx");

Custom styles

You can create custom cells/rows/sheets:

new XsWorkbook(
    new XsSheet(
        new MyCustomRow("Boris", "Miksic", "ID:2450"),
        new MyCustomRow("Mirko", "Mirkic", "ID:1690")
    )
).saveTo("Test.xlsx");

Just extend appropriate template class and pass custom row/cell object to its constructor:

private static class MyCustomRow extends RowTemplate {

    public MyCustomRow(final String name, final String surname, final String id) {
        super(
            new XsRow()
                .with(new TextCells(name, surname))
                .with(new MyGreyCell(new TextCell(id)))
        );
    }
}

private static class MyGreyCell extends CellTemplate {

    public MyGreyCell(final ECell cell) {
        super(cell.with(
            new XsStyle(
                new ForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()),
                new FillPattern(FillPatternType.SOLID_FOREGROUND)
            )
        ));
    }
}

The result:

Contribution

You can contribute by forking the repo and sending a pull request. Make sure your branch builds without any warnings/issues:

mvn clean install -Pqulice
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].