Skip to content

f35f22fan/Ods2

Repository files navigation

Ods2 - a library to read/write/update OpenDocument Spreadsheet (.ods) files. Supports the most commonly used formula functions (including evaluation).

Building

As of Jan 2025 moved to Qt6-only.
libzip and zlib are used for .zip support (libzip needs zlib, and Ods2 needs libzip).
Building tested on Windows with Visual Studio 17 2022 and LLVM MinGW, and with g++ on Fedora Linux 41.
See how_to_build.html

API usage

See examples/examples[1-2].cc

The file examples/Invoice.ods was generated with Ods2, the source code that generated it is in examples/Invoice.cpp

License, etc

Licensed under the GPLv3 or MIT license, see LICENSE for details. For questions, feature requests, etc: f35f22fan AT gmail DOT com


59 out of 393 functions implemented
Column 1 Column 2 Column 3 Column 4
☑️ ABS() 🔲 ACCRINT() 🔲 ACCRINTM() ☑️ ACOS()
🔲 ACOSH() ☑️ ACOT() 🔲 ACOTH() 🔲 ADDRESS()
🔲 AMORDEGRC() 🔲 AMORLINC() ☑️ AND() 🔲 ARABIC()
🔲 AREAS() ☑️ ASIN() 🔲 ASINH() ☑️ ATAN()
☑️ ATAN2() 🔲 ATANH() 🔲 AVEDEV() ☑️ AVERAGE()
🔲 AVERAGEA() 🔲 AVERAGEIFS() 🔲 B() 🔲 BAHTTEXT()
🔲 BASE() 🔲 BESSELI() 🔲 BESSELJ() 🔲 BESSELK()
🔲 BESSELY() 🔲 BETADIST() 🔲 BETAINV() 🔲 BIN2DEC()
🔲 BIN2HEX() 🔲 BIN2OCT() 🔲 BINOMDIST() ☑️ BITAND()
☑️ BITLSHIFT() ☑️ BITOR() ☑️ BITRSHIFT() ☑️ BITXOR()
🔲 CEILING() 🔲 CELL() 🔲 CHAR() 🔲 CHIDIST()
🔲 CHIINV() 🔲 CHISQDIST() 🔲 CHISQINV() 🔲 CHITEST()
🔲 CHOOSE() 🔲 CLEAN() 🔲 CODE() 🔲 COLUMN()
☑️ COLUMNS() 🔲 COMBIN() 🔲 COMBINA() 🔲 COMPLEX()
☑️ CONCATENATE() 🔲 CONFIDENCE() 🔲 CONVERT() 🔲 CONVERT_ADD()
🔲 CORREL() ☑️ COS() 🔲 COSH() ☑️ COT()
🔲 COTH() ☑️ COUNT() ☑️ COUNTA() ☑️ COUNTBLANK()
☑️ COUNTIF() 🔲 COUNTIFS() 🔲 COUPDAYBS() 🔲 COUPDAYS()
🔲 COUPDAYSNC() 🔲 COUPNCD() 🔲 COUPNUM() 🔲 COUPPCD()
🔲 COVAR() 🔲 CRITBINOM() 🔲 CSC() 🔲 CSCH()
🔲 CUMIPMT() 🔲 CUMIPMT_ADD() 🔲 CUMPRINC() 🔲 CUMPRINC_ADD()
🔲 CURRENT() ☑️ DATE() 🔲 DATEVALUE() 🔲 DAVERAGE()
☑️ DAY() 🔲 DAYS() 🔲 DAYS360() 🔲 DAYSINMONTH()
🔲 DAYSINYEAR() 🔲 DB() 🔲 DCOUNT() 🔲 DCOUNTA()
🔲 DDB() 🔲 DDE() 🔲 DEC2BIN() 🔲 DEC2HEX()
🔲 DEC2OCT() 🔲 DECIMAL() 🔲 DEGREES() 🔲 DELTA()
🔲 DEVSQ() 🔲 DGET() 🔲 DISC() 🔲 DMAX()
🔲 DMIN() 🔲 DOLLAR() 🔲 DOLLARDE() 🔲 DOLLARFR()
🔲 DPRODUCT() 🔲 DSTDEV() 🔲 DSTDEVP() 🔲 DSUM()
🔲 DURATION() 🔲 DURATION_ADD() 🔲 DVAR() 🔲 DVARP()
🔲 EASTERSUNDAY() 🔲 EDATE() 🔲 EFFECTIVE() 🔲 EFFECT_ADD()
🔲 EOMONTH() 🔲 ERF() 🔲 ERFC() 🔲 ERRORTYPE()
🔲 EVEN() 🔲 EXACT() 🔲 EXP() 🔲 EXPONDIST()
🔲 FACT() 🔲 FACTDOUBLE() ☑️ FALSE() 🔲 FDIST()
🔲 FIND() 🔲 FINV() 🔲 FISHER() 🔲 FISHERINV()
🔲 FIXED() 🔲 FLOOR() 🔲 FORECAST() ☑️ FORMULA()
🔲 FREQUENCY() 🔲 FTEST() 🔲 FV() 🔲 FVSCHEDULE()
🔲 GAMMA() 🔲 GAMMADIST() 🔲 GAMMAINV() 🔲 GAMMALN()
🔲 GAUSS() 🔲 GCD() 🔲 GCD_ADD() 🔲 GEOMEAN()
🔲 GESTEP() 🔲 GROWTH() 🔲 HARMEAN() 🔲 HEX2BIN()
🔲 HEX2DEC() 🔲 HEX2OCT() 🔲 HLOOKUP() ☑️ HOUR()
🔲 HYPERLINK() 🔲 HYPGEOMDIST() ☑️ IF() 🔲 IMABS()
🔲 IMAGINARY() 🔲 IMARGUMENT() 🔲 IMCONJUGATE() 🔲 IMCOS()
🔲 IMCOSH() 🔲 IMCOT() 🔲 IMCSC() 🔲 IMCSCH()
🔲 IMDIV() 🔲 IMEXP() 🔲 IMLN() 🔲 IMLOG10()
🔲 IMLOG2() 🔲 IMPOWER() 🔲 IMPRODUCT() 🔲 IMREAL()
🔲 IMSEC() 🔲 IMSECH() 🔲 IMSIN() 🔲 IMSINH()
🔲 IMSQRT() 🔲 IMSUB() 🔲 IMSUM() 🔲 IMTAN()
🔲 INDEX() ☑️ INDIRECT() 🔲 INFO() 🔲 INT()
🔲 INTERCEPT() 🔲 INTRATE() 🔲 IPMT() 🔲 IRR()
🔲 ISBLANK() 🔲 ISERR() 🔲 ISERROR() 🔲 ISEVEN()
🔲 ISEVEN() 🔲 ISEVEN_ADD() 🔲 ISFORMULA() 🔲 ISLEAPYEAR()
🔲 ISLOGICAL() 🔲 ISNA() 🔲 ISNONTEXT() 🔲 ISNUMBER()
🔲 ISODD() 🔲 ISODD() 🔲 ISODD_ADD() 🔲 ISPMT()
🔲 ISREF() 🔲 ISTEXT() 🔲 KURT() 🔲 LARGE()
🔲 LCM() 🔲 LCM_ADD() 🔲 LEFT() 🔲 LEN()
🔲 LINEST() 🔲 LN() 🔲 LOG() 🔲 LOG10()
🔲 LOGEST() 🔲 LOGINV() 🔲 LOGNORMDIST() 🔲 LOOKUP()
🔲 LOWER() ☑️ MATCH() ☑️ MAX() 🔲 MAXA()
🔲 MDETERM() 🔲 MDURATION() 🔲 MEDIAN() 🔲 MID()
☑️ MIN() 🔲 MINA() ☑️ MINUTE() 🔲 MINVERSE()
🔲 MIRR() 🔲 MMULT() ☑️ MOD() 🔲 MODE()
☑️ MONTH() 🔲 MONTHS() 🔲 MROUND() 🔲 MULTINOMIAL()
🔲 MUNIT() 🔲 N() 🔲 NA() 🔲 NEGBINOMDIST()
🔲 NETWORKDAYS() 🔲 NOMINAL() 🔲 NOMINAL_ADD() 🔲 NORMDIST()
🔲 NORMINV() 🔲 NORMSDIST() 🔲 NORMSINV() ☑️ NOT()
☑️ NOW() 🔲 NPER() 🔲 NPV() 🔲 OCT2BIN()
🔲 OCT2DEC() 🔲 OCT2HEX() 🔲 ODD() 🔲 ODDFPRICE()
🔲 ODDFYIELD() 🔲 ODDLPRICE() 🔲 ODDLYIELD() ☑️ OFFSET()
☑️ OR() 🔲 PEARSON() 🔲 PERCENTILE() 🔲 PERCENTRANK()
🔲 PERMUT() 🔲 PERMUTATIONA() 🔲 PHI() ☑️ PI()
🔲 PMT() 🔲 POISSON() ☑️ POWER() 🔲 PPMT()
🔲 PRICE() 🔲 PRICEDISC() 🔲 PRICEMAT() 🔲 PROB()
☑️ PRODUCT() 🔲 PROPER() 🔲 PV() 🔲 QUARTILE()
☑️ QUOTIENT() 🔲 RADIANS() ☑️ RAND() ☑️ RANDBETWEEN()
🔲 RANK() 🔲 RATE() 🔲 RECEIVED() 🔲 REPLACE()
🔲 REPT() 🔲 RIGHT() 🔲 ROMAN() ☑️ ROUND()
☑️ ROUNDDOWN() ☑️ ROUNDUP() 🔲 ROW() ☑️ ROWS()
🔲 RRI() 🔲 RSQ() 🔲 SEARCH() 🔲 SEC()
🔲 SECH() ☑️ SECOND() 🔲 SERIESSUM() 🔲 SHEET()
🔲 SHEETS() 🔲 SIGN() ☑️ SIN() 🔲 SINH()
🔲 SKEW() 🔲 SLN() 🔲 SLOPE() 🔲 SMALL()
🔲 SQRT() 🔲 SQRTPI() 🔲 STANDARDIZE() 🔲 STDEV()
🔲 STDEVA() 🔲 STDEVP() 🔲 STDEVPA() 🔲 STEYX()
🔲 STYLE() 🔲 SUBSTITUTE() 🔲 SUBTOTAL() ☑️ SUM()
☑️ SUMIF() 🔲 SUMIFS() 🔲 SUMPRODUCT() 🔲 SUMSQ()
🔲 SUMX2MY2() 🔲 SUMX2PY2() 🔲 SUMXMY2() 🔲 SYD()
🔲 T() ☑️ TAN() 🔲 TANH() 🔲 TBILLEQ()
🔲 TBILLPRICE() 🔲 TBILLYIELD() 🔲 TDIST() ☑️ TEXT()
☑️ TIME() ☑️ TIMEVALUE() 🔲 TINV() ☑️ TODAY()
🔲 TRANSPOSE() 🔲 TREND() 🔲 TRIM() 🔲 TRIMMEAN()
☑️ TRUE() 🔲 TRUNC() 🔲 TTEST() 🔲 TYPE()
🔲 UPPER() 🔲 VALUE() 🔲 VAR() 🔲 VARA()
🔲 VARP() 🔲 VARPA() 🔲 VDB() 🔲 VLOOKUP()
🔲 WEEKDAY() 🔲 WEEKNUM() 🔲 WEEKNUM_ADD() 🔲 WEEKS()
🔲 WEEKSINYEAR() 🔲 WEIBULL() 🔲 WORKDAY() 🔲 XIRR()
🔲 XNPV() 🔲 XOR() ☑️ YEAR() 🔲 YEARFRAC()
🔲 YEARS() 🔲 YIELD() 🔲 YIELDDISC() 🔲 YIELDMAT()
🔲 ZTEST()

About

A Qt6/C++17 library to create, read and update .ods files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •