Ods2 - a library to read/write/update OpenDocument Spreadsheet (.ods) files. Supports the most commonly used formula functions (including evaluation).
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
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
Licensed under the GPLv3 or MIT license, see LICENSE for details. For questions, feature requests, etc: f35f22fan AT gmail DOT com
| 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() |