Ods2 icon indicating copy to clipboard operation
Ods2 copied to clipboard

A Qt5/C++11 library to create, read and update .ods files

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

API usage

See examples/examples[1-2].cc

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

How to build

See how_to_build.html

License, etc

Library updates might break API compatibility with previous updates to allow for easier development of this library.

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


33 out of 388 functions implemented
Column 1 Column 2 Column 3 Column 4
:black_square_button: abs() :black_square_button: accrint() :black_square_button: accrintm() :black_square_button: acos()
:black_square_button: acosh() :black_square_button: acot() :black_square_button: acoth() :black_square_button: address()
:black_square_button: amordegrc() :black_square_button: amorlinc() :ballot_box_with_check: and() :black_square_button: arabic()
:black_square_button: areas() :black_square_button: asin() :black_square_button: asinh() :black_square_button: atan()
:black_square_button: atan2() :black_square_button: atanh() :black_square_button: avedev() :ballot_box_with_check: average()
:black_square_button: averagea() :black_square_button: averageifs() :black_square_button: b() :black_square_button: bahttext()
:black_square_button: base() :black_square_button: besseli() :black_square_button: besselj() :black_square_button: besselk()
:black_square_button: bessely() :black_square_button: betadist() :black_square_button: betainv() :black_square_button: bin2dec()
:black_square_button: bin2hex() :black_square_button: bin2oct() :black_square_button: binomdist() :black_square_button: ceiling()
:black_square_button: cell() :black_square_button: char() :black_square_button: chidist() :black_square_button: chiinv()
:black_square_button: chisqdist() :black_square_button: chisqinv() :black_square_button: chitest() :black_square_button: choose()
:black_square_button: clean() :black_square_button: code() :black_square_button: column() :ballot_box_with_check: columns()
:black_square_button: combin() :black_square_button: combina() :black_square_button: complex() :ballot_box_with_check: concatenate()
:black_square_button: confidence() :black_square_button: convert() :black_square_button: convert_add() :black_square_button: correl()
:black_square_button: cos() :black_square_button: cosh() :black_square_button: cot() :black_square_button: coth()
:ballot_box_with_check: count() :ballot_box_with_check: counta() :ballot_box_with_check: countblank() :ballot_box_with_check: countif()
:black_square_button: countifs() :black_square_button: coupdaybs() :black_square_button: coupdays() :black_square_button: coupdaysnc()
:black_square_button: coupncd() :black_square_button: coupnum() :black_square_button: couppcd() :black_square_button: covar()
:black_square_button: critbinom() :black_square_button: csc() :black_square_button: csch() :black_square_button: cumipmt()
:black_square_button: cumipmt_add() :black_square_button: cumprinc() :black_square_button: cumprinc_add() :black_square_button: current()
:ballot_box_with_check: date() :black_square_button: datevalue() :black_square_button: daverage() :ballot_box_with_check: day()
:black_square_button: days() :black_square_button: days360() :black_square_button: daysinmonth() :black_square_button: daysinyear()
:black_square_button: db() :black_square_button: dcount() :black_square_button: dcounta() :black_square_button: ddb()
:black_square_button: dde() :black_square_button: dec2bin() :black_square_button: dec2hex() :black_square_button: dec2oct()
:black_square_button: decimal() :black_square_button: degrees() :black_square_button: delta() :black_square_button: devsq()
:black_square_button: dget() :black_square_button: disc() :black_square_button: dmax() :black_square_button: dmin()
:black_square_button: dollar() :black_square_button: dollarde() :black_square_button: dollarfr() :black_square_button: dproduct()
:black_square_button: dstdev() :black_square_button: dstdevp() :black_square_button: dsum() :black_square_button: duration()
:black_square_button: duration_add() :black_square_button: dvar() :black_square_button: dvarp() :black_square_button: eastersunday()
:black_square_button: edate() :black_square_button: effective() :black_square_button: effect_add() :black_square_button: eomonth()
:black_square_button: erf() :black_square_button: erfc() :black_square_button: errortype() :black_square_button: even()
:black_square_button: exact() :black_square_button: exp() :black_square_button: expondist() :black_square_button: fact()
:black_square_button: factdouble() :ballot_box_with_check: false() :black_square_button: fdist() :black_square_button: find()
:black_square_button: finv() :black_square_button: fisher() :black_square_button: fisherinv() :black_square_button: fixed()
:black_square_button: floor() :black_square_button: forecast() :black_square_button: formula() :black_square_button: frequency()
:black_square_button: ftest() :black_square_button: fv() :black_square_button: fvschedule() :black_square_button: gamma()
:black_square_button: gammadist() :black_square_button: gammainv() :black_square_button: gammaln() :black_square_button: gauss()
:black_square_button: gcd() :black_square_button: gcd_add() :black_square_button: geomean() :black_square_button: gestep()
:black_square_button: growth() :black_square_button: harmean() :black_square_button: hex2bin() :black_square_button: hex2dec()
:black_square_button: hex2oct() :black_square_button: hlookup() :black_square_button: hour() :black_square_button: hyperlink()
:black_square_button: hypgeomdist() :ballot_box_with_check: if() :black_square_button: imabs() :black_square_button: imaginary()
:black_square_button: imargument() :black_square_button: imconjugate() :black_square_button: imcos() :black_square_button: imcosh()
:black_square_button: imcot() :black_square_button: imcsc() :black_square_button: imcsch() :black_square_button: imdiv()
:black_square_button: imexp() :black_square_button: imln() :black_square_button: imlog10() :black_square_button: imlog2()
:black_square_button: impower() :black_square_button: improduct() :black_square_button: imreal() :black_square_button: imsec()
:black_square_button: imsech() :black_square_button: imsin() :black_square_button: imsinh() :black_square_button: imsqrt()
:black_square_button: imsub() :black_square_button: imsum() :black_square_button: imtan() :black_square_button: index()
:ballot_box_with_check: indirect() :black_square_button: info() :black_square_button: int() :black_square_button: intercept()
:black_square_button: intrate() :black_square_button: ipmt() :black_square_button: irr() :black_square_button: isblank()
:black_square_button: iserr() :black_square_button: iserror() :black_square_button: iseven() :black_square_button: iseven()
:black_square_button: iseven_add() :black_square_button: isformula() :black_square_button: isleapyear() :black_square_button: islogical()
:black_square_button: isna() :black_square_button: isnontext() :black_square_button: isnumber() :black_square_button: isodd()
:black_square_button: isodd() :black_square_button: isodd_add() :black_square_button: ispmt() :black_square_button: isref()
:black_square_button: istext() :black_square_button: kurt() :black_square_button: large() :black_square_button: lcm()
:black_square_button: lcm_add() :black_square_button: left() :black_square_button: len() :black_square_button: linest()
:black_square_button: ln() :black_square_button: log() :black_square_button: log10() :black_square_button: logest()
:black_square_button: loginv() :black_square_button: lognormdist() :black_square_button: lookup() :black_square_button: lower()
:black_square_button: match() :ballot_box_with_check: max() :black_square_button: maxa() :black_square_button: mdeterm()
:black_square_button: mduration() :black_square_button: median() :black_square_button: mid() :ballot_box_with_check: min()
:black_square_button: mina() :black_square_button: minute() :black_square_button: minverse() :black_square_button: mirr()
:black_square_button: mmult() :ballot_box_with_check: mod() :black_square_button: mode() :ballot_box_with_check: month()
:black_square_button: months() :black_square_button: mround() :black_square_button: multinomial() :black_square_button: munit()
:black_square_button: n() :black_square_button: na() :black_square_button: negbinomdist() :black_square_button: networkdays()
:black_square_button: nominal() :black_square_button: nominal_add() :black_square_button: normdist() :black_square_button: norminv()
:black_square_button: normsdist() :black_square_button: normsinv() :ballot_box_with_check: not() :ballot_box_with_check: now()
:black_square_button: nper() :black_square_button: npv() :black_square_button: oct2bin() :black_square_button: oct2dec()
:black_square_button: oct2hex() :black_square_button: odd() :black_square_button: oddfprice() :black_square_button: oddfyield()
:black_square_button: oddlprice() :black_square_button: oddlyield() :ballot_box_with_check: offset() :ballot_box_with_check: or()
:black_square_button: pearson() :black_square_button: percentile() :black_square_button: percentrank() :black_square_button: permut()
:black_square_button: permutationa() :black_square_button: phi() :black_square_button: pi() :black_square_button: pmt()
:black_square_button: poisson() :ballot_box_with_check: power() :black_square_button: ppmt() :black_square_button: price()
:black_square_button: pricedisc() :black_square_button: pricemat() :black_square_button: prob() :ballot_box_with_check: product()
:black_square_button: proper() :black_square_button: pv() :black_square_button: quartile() :ballot_box_with_check: quotient()
:black_square_button: radians() :black_square_button: rand() :black_square_button: randbetween() :black_square_button: rank()
:black_square_button: rate() :black_square_button: received() :black_square_button: replace() :black_square_button: rept()
:black_square_button: right() :black_square_button: roman() :ballot_box_with_check: round() :ballot_box_with_check: rounddown()
:ballot_box_with_check: roundup() :black_square_button: row() :ballot_box_with_check: rows() :black_square_button: rri()
:black_square_button: rsq() :black_square_button: search() :black_square_button: sec() :black_square_button: sech()
:black_square_button: second() :black_square_button: seriessum() :black_square_button: sheet() :black_square_button: sheets()
:black_square_button: sign() :black_square_button: sin() :black_square_button: sinh() :black_square_button: skew()
:black_square_button: sln() :black_square_button: slope() :black_square_button: small() :black_square_button: sqrt()
:black_square_button: sqrtpi() :black_square_button: standardize() :black_square_button: stdev() :black_square_button: stdeva()
:black_square_button: stdevp() :black_square_button: stdevpa() :black_square_button: steyx() :black_square_button: style()
:black_square_button: substitute() :black_square_button: subtotal() :ballot_box_with_check: sum() :ballot_box_with_check: sumif()
:black_square_button: sumifs() :black_square_button: sumproduct() :black_square_button: sumsq() :black_square_button: sumx2my2()
:black_square_button: sumx2py2() :black_square_button: sumxmy2() :black_square_button: syd() :black_square_button: t()
:black_square_button: tan() :black_square_button: tanh() :black_square_button: tbilleq() :black_square_button: tbillprice()
:black_square_button: tbillyield() :black_square_button: tdist() :black_square_button: text() :black_square_button: time()
:black_square_button: timevalue() :black_square_button: tinv() :ballot_box_with_check: today() :black_square_button: transpose()
:black_square_button: trend() :black_square_button: trim() :black_square_button: trimmean() :ballot_box_with_check: true()
:black_square_button: trunc() :black_square_button: ttest() :black_square_button: type() :black_square_button: upper()
:black_square_button: value() :black_square_button: var() :black_square_button: vara() :black_square_button: varp()
:black_square_button: varpa() :black_square_button: vdb() :black_square_button: vlookup() :black_square_button: weekday()
:black_square_button: weeknum() :black_square_button: weeknum_add() :black_square_button: weeks() :black_square_button: weeksinyear()
:black_square_button: weibull() :black_square_button: workday() :black_square_button: xirr() :black_square_button: xnpv()
:black_square_button: xor() :ballot_box_with_check: year() :black_square_button: yearfrac() :black_square_button: years()
:black_square_button: yield() :black_square_button: yielddisc() :black_square_button: yieldmat() :black_square_button: ztest()