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