FIX: Clearer list for the wiki

This commit is contained in:
Nicolás Hatcher
2024-03-16 17:34:43 +01:00
parent 0029901ca3
commit a38ba93724
3 changed files with 208 additions and 195 deletions

View File

@@ -30,6 +30,10 @@ coverage:
CARGO_INCREMENTAL=0 RUSTFLAGS='-C instrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test
grcov . --binary-path ./target/debug/deps/ -s . -t html --branch --ignore-not-existing --ignore '../*' --ignore "/*" -o target/coverage/html
update-docs:
cargo build
./target/debug/documentation -o wiki/functions.md
docs:
cargo doc --no-deps

View File

@@ -1,192 +1,192 @@
AND
FALSE
IF
IFERROR
IFNA
IFS
NOT
OR
SWITCH
TRUE
XOR
SIN
COS
TAN
ASIN
ACOS
ATAN
SINH
COSH
TANH
ASINH
ACOSH
ATANH
ABS
PI
SQRT
SQRTPI
ATAN2
POWER
MAX
MIN
PRODUCT
RAND
RANDBETWEEN
ROUND
ROUNDDOWN
ROUNDUP
SUM
SUMIF
SUMIFS
CHOOSE
COLUMN
COLUMNS
INDEX
INDIRECT
HLOOKUP
LOOKUP
MATCH
OFFSET
ROW
ROWS
VLOOKUP
XLOOKUP
CONCATENATE
EXACT
VALUE
T
VALUETOTEXT
CONCAT
FIND
LEFT
LEN
LOWER
MID
RIGHT
SEARCH
TEXT
TRIM
UPPER
ISNUMBER
ISNONTEXT
ISTEXT
ISLOGICAL
ISBLANK
ISERR
ISERROR
ISNA
NA
ISREF
ISODD
ISEVEN
ERROR.TYPE
ISFORMULA
TYPE
SHEET
AVERAGE
AVERAGEA
AVERAGEIF
AVERAGEIFS
COUNT
COUNTA
COUNTBLANK
COUNTIF
COUNTIFS
MAXIFS
MINIFS
YEAR
DAY
MONTH
EOMONTH
DATE
EDATE
TODAY
NOW
PMT
PV
RATE
NPER
FV
PPMT
IPMT
NPV
MIRR
IRR
XIRR
XNPV
REPT
TEXTAFTER
TEXTBEFORE
TEXTJOIN
SUBSTITUTE
ISPMT
RRI
SLN
SYD
NOMINAL
EFFECT
PDURATION
TBILLYIELD
TBILLPRICE
TBILLEQ
DOLLARDE
DOLLARFR
DDB
DB
CUMPRINC
CUMIPMT
BESSELI
BESSELJ
BESSELK
BESSELY
ERF
ERF.PRECISE
ERFC
ERFC.PRECISE
BIN2DEC
BIN2HEX
BIN2OCT
DEC2BIN
DEC2HEX
DEC2OCT
HEX2BIN
HEX2DEC
HEX2OCT
OCT2BIN
OCT2DEC
OCT2HEX
BITAND
BITLSHIFT
BITOR
BITRSHIFT
BITXOR
COMPLEX
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
CONVERT
DELTA
GESTEP
SUBTOTAL
# List of Functions implemented in IronCalc\n* AND
* FALSE
* IF
* IFERROR
* IFNA
* IFS
* NOT
* OR
* SWITCH
* TRUE
* XOR
* SIN
* COS
* TAN
* ASIN
* ACOS
* ATAN
* SINH
* COSH
* TANH
* ASINH
* ACOSH
* ATANH
* ABS
* PI
* SQRT
* SQRTPI
* ATAN2
* POWER
* MAX
* MIN
* PRODUCT
* RAND
* RANDBETWEEN
* ROUND
* ROUNDDOWN
* ROUNDUP
* SUM
* SUMIF
* SUMIFS
* CHOOSE
* COLUMN
* COLUMNS
* INDEX
* INDIRECT
* HLOOKUP
* LOOKUP
* MATCH
* OFFSET
* ROW
* ROWS
* VLOOKUP
* XLOOKUP
* CONCATENATE
* EXACT
* VALUE
* T
* VALUETOTEXT
* CONCAT
* FIND
* LEFT
* LEN
* LOWER
* MID
* RIGHT
* SEARCH
* TEXT
* TRIM
* UPPER
* ISNUMBER
* ISNONTEXT
* ISTEXT
* ISLOGICAL
* ISBLANK
* ISERR
* ISERROR
* ISNA
* NA
* ISREF
* ISODD
* ISEVEN
* ERROR.TYPE
* ISFORMULA
* TYPE
* SHEET
* AVERAGE
* AVERAGEA
* AVERAGEIF
* AVERAGEIFS
* COUNT
* COUNTA
* COUNTBLANK
* COUNTIF
* COUNTIFS
* MAXIFS
* MINIFS
* YEAR
* DAY
* MONTH
* EOMONTH
* DATE
* EDATE
* TODAY
* NOW
* PMT
* PV
* RATE
* NPER
* FV
* PPMT
* IPMT
* NPV
* MIRR
* IRR
* XIRR
* XNPV
* REPT
* TEXTAFTER
* TEXTBEFORE
* TEXTJOIN
* SUBSTITUTE
* ISPMT
* RRI
* SLN
* SYD
* NOMINAL
* EFFECT
* PDURATION
* TBILLYIELD
* TBILLPRICE
* TBILLEQ
* DOLLARDE
* DOLLARFR
* DDB
* DB
* CUMPRINC
* CUMIPMT
* BESSELI
* BESSELJ
* BESSELK
* BESSELY
* ERF
* ERF.PRECISE
* ERFC
* ERFC.PRECISE
* BIN2DEC
* BIN2HEX
* BIN2OCT
* DEC2BIN
* DEC2HEX
* DEC2OCT
* HEX2BIN
* HEX2DEC
* HEX2OCT
* OCT2BIN
* OCT2DEC
* OCT2HEX
* BITAND
* BITLSHIFT
* BITOR
* BITRSHIFT
* BITXOR
* COMPLEX
* 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
* CONVERT
* DELTA
* GESTEP
* SUBTOTAL

View File

@@ -8,10 +8,19 @@ use std::fs;
use ironcalc_base::model::Model;
fn main() {
let args: Vec<_> = std::env::args().collect();
let output_file = if args.len() == 3 {
&args[2]
} else if args.len() == 1 {
"functions.md"
} else {
panic!("Usage: {} -o <file.md>", args[0]);
};
let mut doc = Vec::new();
doc.push(r#"# List of Functions implemented in IronCalc\n"#.to_owned());
for function in Model::documentation() {
doc.push(function.name);
doc.push(format!("* {}\n", &function.name));
}
let data = doc.join("\n");
fs::write("functions.md", data).expect("Unable to write file");
let data = doc.join("");
fs::write(output_file, data).expect("Unable to write file");
}