Coder Social home page Coder Social logo

darkwings520 / qtofficeopenxml Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dbzhang800/qtofficeopenxml

0.0 1.0 0.0 811 KB

For Qt5.2 or newer, ...

License: GNU General Public License v2.0

Prolog 0.01% C++ 98.47% QMake 1.03% C 0.46% CMake 0.03%

qtofficeopenxml's Introduction

Introduction

Qt Office Open Xml is a library that can be used to read and write opc packages, such as .xlsx/.docx/.pptx files. It doesn't require Microsoft Office and can be used in any platform that Qt 5.2 or newer supported.

Status Namespace ....
[Done] QtOfficeOpenXml::Opc is designed for general OPC package reading and writing.
[Wip ] QtOfficeOpenXml::Sml is designed for Spreadsheet documents reading and writing.
[Todo] QtOfficeOpenXml::Wml is designed for Wordprocessing documents reading and writing.
[Todo] QtOfficeOpenXml::Pml is designed for Presention documents reading and writing.
[Wip ] QtOfficeOpenXml::Dml provides Drawing support for Sml, Wml and Pml.
[Wip ] QtOfficeOpenXml::Ooxml is used by Dml, Sml, Wml and Pml.
[Done] QtOfficeOpenXml::Mce provides Markup Compatibility and Extensibility supports for all the library.

Getting Started

Building the module

Note: Perl is needed in this step.

  • Download the source code.

  • Put the source code in any directory you like

  • Run following command at the toplevel directory of the project

    qmake
    make
    make install

The library, the header files, and others will be installed to your system.

Using the module

  • Add following line to your qmake's project file:
    QT += officeopenxml
  • Then, using Qt Office Open XML in your code

Source code directories

Maybe useful for users and contributors.

global\

Globals files requried by all over the library.

mce\

Depends on global only.

MCE (Markup Compatibility and Extensibility)

More information for mce can be found in ISO/IEC 29500:3.

key features of MCE?

  • Alternative Content Blocks [Done]
  • Ignorable and "must understand" namespaces [Done]
  • ProcessContents [Done]
  • Application-defined extension elements [Todo, wait for next version of ISO/IEC 29500?]
  • Namespace subsumption [Won't support, seems they will be dropped by next ISO/IEC 29500?]
  • ...

opc\

Depends on global and mce.

OPC (Open Packaging Conventions)

More information for opc can be found in ISO/IEC 29500:2.

As .xlsx, .pptx, .docx are all examples of opc package, user can do many interesting things using opc:

  • Create a simple .xlsx, .pptx or .docx document from scratch. See example opc_create_package
  • View the internal raw files of opc package. See example opc_package_viewer and opc_extract_package
  • Find the deference of two opc packages. See example opc_packages_diff
  • Create an Book1.xlsx file with Excel.
  • Do something for Book1.xlsx in Excel, then save it as Book2.xlsx
  • Open Book1.xlsx and Book2.xlsx using opc_packages_diff to find what happened.
  • Edit an existing opc package directly. See example opc_package_xml_edit
  • Open an Test.xlsx file generated by Excel
  • Edit the internal xml file of Test.xlsx directly, then save it again.
  • Re-open the Test.xlsx in Excel to find out what happened.

ooxml\

Depends on global, mce and opc.

Shared files for Office Open XML Parts: dml, wml,sml and pml.

More information can be found in ISO/IEC 29500:1 and ISO/IEC 29500:4.

dml\

Depends on global, mce, opc and ooxml.

DML (DrawingML)

sml\

Depends on global, mce, opc, ooxml and dml.

SML (SpreadsheetML)

wml\

Depends on global, mce, opc, ooxml and dml.

WML (WordprocessingML)

pml\

Depends on global, mce, opc, ooxml and dml.

PML (PresentionML)

References

General

qtofficeopenxml's People

Contributors

dbzhang800 avatar

Watchers

James Cloos 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.