Skip to content

f35f22fan/Ods2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b127370 Β· Mar 1, 2025

History

83 Commits
Mar 1, 2025
Feb 13, 2025
Mar 1, 2025
Feb 13, 2025
Nov 26, 2022
Feb 11, 2025
Mar 27, 2022
Jan 19, 2025
Mar 1, 2025
Feb 15, 2025
Mar 1, 2025
Feb 9, 2025

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