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() |