mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-15 06:52:23 +00:00
* Add craft-xls: Excel 97-2003 (.xls, BIFF8) workbook reader Moved from GridCraft's gridcraft-xlsx crate (crates/xlsx/src/xls.rs and xls/ at 5cf52c5f), where it read into GridCraft's own workbook model. Here it reads into a model of the file's own terms: cells, formulas as A1 text, one CellFormat per XF, ColInfo and Row records in file units, defined names, print areas as formula text. The container is read with craft-cfb. RString cells and the fixture writer in craft_xls::testing come from WordCraft's mail-merge reader (crates/formats/src/sheet/xls.rs). * craft-xls: report the sheet the workbook was saved on Window1's itabCur, counted over every BoundSheet8 record, as Workbook::active_sheet (an index into the worksheets that were read). Whether to open on a hidden sheet is the caller's choice. Ported from storytold/gridcraft#3551. --------- Co-authored-by: Daniele Mori <3956663+Morzilla@users.noreply.github.com>
377 lines
9.2 KiB
Rust
377 lines
9.2 KiB
Rust
// Generated from the Ftab table of [MS-XLS] section 2.5.198.17: (iftab, name, fixed argument
|
|
// count or -1 when the function takes a variable number of arguments).
|
|
pub(super) const FTAB: &[(u16, &str, i8)] = &[
|
|
(0, "COUNT", -1),
|
|
(1, "IF", -1),
|
|
(2, "ISNA", 1),
|
|
(3, "ISERROR", 1),
|
|
(4, "SUM", -1),
|
|
(5, "AVERAGE", -1),
|
|
(6, "MIN", -1),
|
|
(7, "MAX", -1),
|
|
(8, "ROW", -1),
|
|
(9, "COLUMN", -1),
|
|
(10, "NA", 0),
|
|
(11, "NPV", -1),
|
|
(12, "STDEV", -1),
|
|
(13, "DOLLAR", -1),
|
|
(14, "FIXED", -1),
|
|
(15, "SIN", 1),
|
|
(16, "COS", 1),
|
|
(17, "TAN", 1),
|
|
(18, "ATAN", 1),
|
|
(19, "PI", 0),
|
|
(20, "SQRT", 1),
|
|
(21, "EXP", 1),
|
|
(22, "LN", 1),
|
|
(23, "LOG10", 1),
|
|
(24, "ABS", 1),
|
|
(25, "INT", 1),
|
|
(26, "SIGN", 1),
|
|
(27, "ROUND", 2),
|
|
(28, "LOOKUP", -1),
|
|
(29, "INDEX", -1),
|
|
(30, "REPT", 2),
|
|
(31, "MID", 3),
|
|
(32, "LEN", 1),
|
|
(33, "VALUE", 1),
|
|
(34, "TRUE", 0),
|
|
(35, "FALSE", 0),
|
|
(36, "AND", -1),
|
|
(37, "OR", -1),
|
|
(38, "NOT", 1),
|
|
(39, "MOD", 2),
|
|
(40, "DCOUNT", 3),
|
|
(41, "DSUM", 3),
|
|
(42, "DAVERAGE", 3),
|
|
(43, "DMIN", 3),
|
|
(44, "DMAX", 3),
|
|
(45, "DSTDEV", 3),
|
|
(46, "VAR", -1),
|
|
(47, "DVAR", 3),
|
|
(48, "TEXT", 2),
|
|
(49, "LINEST", -1),
|
|
(50, "TREND", -1),
|
|
(51, "LOGEST", -1),
|
|
(52, "GROWTH", -1),
|
|
(53, "GOTO", 1),
|
|
(54, "HALT", -1),
|
|
(55, "RETURN", -1),
|
|
(56, "PV", -1),
|
|
(57, "FV", -1),
|
|
(58, "NPER", -1),
|
|
(59, "PMT", -1),
|
|
(60, "RATE", -1),
|
|
(61, "MIRR", 3),
|
|
(62, "IRR", -1),
|
|
(63, "RAND", 0),
|
|
(64, "MATCH", -1),
|
|
(65, "DATE", 3),
|
|
(66, "TIME", 3),
|
|
(67, "DAY", 1),
|
|
(68, "MONTH", 1),
|
|
(69, "YEAR", 1),
|
|
(70, "WEEKDAY", -1),
|
|
(71, "HOUR", 1),
|
|
(72, "MINUTE", 1),
|
|
(73, "SECOND", 1),
|
|
(74, "NOW", 0),
|
|
(75, "AREAS", 1),
|
|
(76, "ROWS", 1),
|
|
(77, "COLUMNS", 1),
|
|
(78, "OFFSET", -1),
|
|
(79, "ABSREF", 2),
|
|
(80, "RELREF", 2),
|
|
(81, "ARGUMENT", -1),
|
|
(82, "SEARCH", -1),
|
|
(83, "TRANSPOSE", 1),
|
|
(84, "ERROR", -1),
|
|
(85, "STEP", 0),
|
|
(86, "TYPE", 1),
|
|
(87, "ECHO", -1),
|
|
(88, "SET.NAME", -1),
|
|
(89, "CALLER", 0),
|
|
(90, "DEREF", 1),
|
|
(91, "WINDOWS", -1),
|
|
(92, "SERIES", -1),
|
|
(93, "DOCUMENTS", -1),
|
|
(94, "ACTIVE.CELL", 0),
|
|
(95, "SELECTION", 0),
|
|
(96, "RESULT", -1),
|
|
(97, "ATAN2", 2),
|
|
(98, "ASIN", 1),
|
|
(99, "ACOS", 1),
|
|
(100, "CHOOSE", -1),
|
|
(101, "HLOOKUP", -1),
|
|
(102, "VLOOKUP", -1),
|
|
(103, "LINKS", -1),
|
|
(104, "INPUT", -1),
|
|
(105, "ISREF", 1),
|
|
(106, "GET.FORMULA", 1),
|
|
(107, "GET.NAME", -1),
|
|
(108, "SET.VALUE", 2),
|
|
(109, "LOG", -1),
|
|
(110, "EXEC", -1),
|
|
(111, "CHAR", 1),
|
|
(112, "LOWER", 1),
|
|
(113, "UPPER", 1),
|
|
(114, "PROPER", 1),
|
|
(115, "LEFT", -1),
|
|
(116, "RIGHT", -1),
|
|
(117, "EXACT", 2),
|
|
(118, "TRIM", 1),
|
|
(119, "REPLACE", 4),
|
|
(120, "SUBSTITUTE", -1),
|
|
(121, "CODE", 1),
|
|
(122, "NAMES", -1),
|
|
(123, "DIRECTORY", -1),
|
|
(124, "FIND", -1),
|
|
(125, "CELL", -1),
|
|
(126, "ISERR", 1),
|
|
(127, "ISTEXT", 1),
|
|
(128, "ISNUMBER", 1),
|
|
(129, "ISBLANK", 1),
|
|
(130, "T", 1),
|
|
(131, "N", 1),
|
|
(132, "FOPEN", -1),
|
|
(133, "FCLOSE", 1),
|
|
(134, "FSIZE", 1),
|
|
(135, "FREADLN", 1),
|
|
(136, "FREAD", 2),
|
|
(137, "FWRITELN", 2),
|
|
(138, "FWRITE", 2),
|
|
(139, "FPOS", -1),
|
|
(140, "DATEVALUE", 1),
|
|
(141, "TIMEVALUE", 1),
|
|
(142, "SLN", 3),
|
|
(143, "SYD", 4),
|
|
(144, "DDB", -1),
|
|
(145, "GET.DEF", -1),
|
|
(146, "REFTEXT", -1),
|
|
(147, "TEXTREF", -1),
|
|
(148, "INDIRECT", -1),
|
|
(149, "REGISTER", -1),
|
|
(150, "CALL", -1),
|
|
(151, "ADD.BAR", -1),
|
|
(152, "ADD.MENU", -1),
|
|
(153, "ADD.COMMAND", -1),
|
|
(154, "ENABLE.COMMAND", -1),
|
|
(155, "CHECK.COMMAND", -1),
|
|
(156, "RENAME.COMMAND", -1),
|
|
(157, "SHOW.BAR", -1),
|
|
(158, "DELETE.MENU", -1),
|
|
(159, "DELETE.COMMAND", -1),
|
|
(160, "GET.CHART.ITEM", -1),
|
|
(161, "DIALOG.BOX", 1),
|
|
(162, "CLEAN", 1),
|
|
(163, "MDETERM", 1),
|
|
(164, "MINVERSE", 1),
|
|
(165, "MMULT", 2),
|
|
(166, "FILES", -1),
|
|
(167, "IPMT", -1),
|
|
(168, "PPMT", -1),
|
|
(169, "COUNTA", -1),
|
|
(170, "CANCEL.KEY", -1),
|
|
(171, "FOR", -1),
|
|
(172, "WHILE", 1),
|
|
(173, "BREAK", 0),
|
|
(174, "NEXT", 0),
|
|
(175, "INITIATE", 2),
|
|
(176, "REQUEST", 2),
|
|
(177, "POKE", 3),
|
|
(178, "EXECUTE", 2),
|
|
(179, "TERMINATE", 1),
|
|
(180, "RESTART", -1),
|
|
(181, "HELP", -1),
|
|
(182, "GET.BAR", -1),
|
|
(183, "PRODUCT", -1),
|
|
(184, "FACT", 1),
|
|
(185, "GET.CELL", -1),
|
|
(186, "GET.WORKSPACE", 1),
|
|
(187, "GET.WINDOW", -1),
|
|
(188, "GET.DOCUMENT", -1),
|
|
(189, "DPRODUCT", 3),
|
|
(190, "ISNONTEXT", 1),
|
|
(191, "GET.NOTE", -1),
|
|
(192, "NOTE", -1),
|
|
(193, "STDEVP", -1),
|
|
(194, "VARP", -1),
|
|
(195, "DSTDEVP", 3),
|
|
(196, "DVARP", 3),
|
|
(197, "TRUNC", -1),
|
|
(198, "ISLOGICAL", 1),
|
|
(199, "DCOUNTA", 3),
|
|
(200, "DELETE.BAR", 1),
|
|
(201, "UNREGISTER", 1),
|
|
(204, "USDOLLAR", -1),
|
|
(205, "FINDB", -1),
|
|
(206, "SEARCHB", -1),
|
|
(207, "REPLACEB", 4),
|
|
(208, "LEFTB", -1),
|
|
(209, "RIGHTB", -1),
|
|
(210, "MIDB", 3),
|
|
(211, "LENB", 1),
|
|
(212, "ROUNDUP", 2),
|
|
(213, "ROUNDDOWN", 2),
|
|
(214, "ASC", 1),
|
|
(215, "DBCS", 1),
|
|
(216, "RANK", -1),
|
|
(219, "ADDRESS", -1),
|
|
(220, "DAYS360", -1),
|
|
(221, "TODAY", 0),
|
|
(222, "VDB", -1),
|
|
(223, "ELSE", 0),
|
|
(224, "ELSE.IF", 1),
|
|
(225, "END.IF", 0),
|
|
(226, "FOR.CELL", -1),
|
|
(227, "MEDIAN", -1),
|
|
(228, "SUMPRODUCT", -1),
|
|
(229, "SINH", 1),
|
|
(230, "COSH", 1),
|
|
(231, "TANH", 1),
|
|
(232, "ASINH", 1),
|
|
(233, "ACOSH", 1),
|
|
(234, "ATANH", 1),
|
|
(235, "DGET", 3),
|
|
(236, "CREATE.OBJECT", -1),
|
|
(237, "VOLATILE", -1),
|
|
(238, "LAST.ERROR", 0),
|
|
(239, "CUSTOM.UNDO", -1),
|
|
(240, "CUSTOM.REPEAT", -1),
|
|
(241, "FORMULA.CONVERT", -1),
|
|
(242, "GET.LINK.INFO", -1),
|
|
(243, "TEXT.BOX", -1),
|
|
(244, "INFO", 1),
|
|
(245, "GROUP", 0),
|
|
(246, "GET.OBJECT", -1),
|
|
(247, "DB", -1),
|
|
(248, "PAUSE", -1),
|
|
(251, "RESUME", -1),
|
|
(252, "FREQUENCY", 2),
|
|
(253, "ADD.TOOLBAR", -1),
|
|
(254, "DELETE.TOOLBAR", 1),
|
|
(256, "RESET.TOOLBAR", 1),
|
|
(257, "EVALUATE", 1),
|
|
(258, "GET.TOOLBAR", -1),
|
|
(259, "GET.TOOL", -1),
|
|
(260, "SPELLING.CHECK", -1),
|
|
(261, "ERROR.TYPE", 1),
|
|
(262, "APP.TITLE", -1),
|
|
(263, "WINDOW.TITLE", -1),
|
|
(264, "SAVE.TOOLBAR", -1),
|
|
(265, "ENABLE.TOOL", 3),
|
|
(266, "PRESS.TOOL", 3),
|
|
(267, "REGISTER.ID", -1),
|
|
(268, "GET.WORKBOOK", -1),
|
|
(269, "AVEDEV", -1),
|
|
(270, "BETADIST", -1),
|
|
(271, "GAMMALN", 1),
|
|
(272, "BETAINV", -1),
|
|
(273, "BINOMDIST", 4),
|
|
(274, "CHIDIST", 2),
|
|
(275, "CHIINV", 2),
|
|
(276, "COMBIN", 2),
|
|
(277, "CONFIDENCE", 3),
|
|
(278, "CRITBINOM", 3),
|
|
(279, "EVEN", 1),
|
|
(280, "EXPONDIST", 3),
|
|
(281, "FDIST", 3),
|
|
(282, "FINV", 3),
|
|
(283, "FISHER", 1),
|
|
(284, "FISHERINV", 1),
|
|
(285, "FLOOR", 2),
|
|
(286, "GAMMADIST", 4),
|
|
(287, "GAMMAINV", 3),
|
|
(288, "CEILING", 2),
|
|
(289, "HYPGEOMDIST", 4),
|
|
(290, "LOGNORMDIST", 3),
|
|
(291, "LOGINV", 3),
|
|
(292, "NEGBINOMDIST", 3),
|
|
(293, "NORMDIST", 4),
|
|
(294, "NORMSDIST", 1),
|
|
(295, "NORMINV", 3),
|
|
(296, "NORMSINV", 1),
|
|
(297, "STANDARDIZE", 3),
|
|
(298, "ODD", 1),
|
|
(299, "PERMUT", 2),
|
|
(300, "POISSON", 3),
|
|
(301, "TDIST", 3),
|
|
(302, "WEIBULL", 4),
|
|
(303, "SUMXMY2", 2),
|
|
(304, "SUMX2MY2", 2),
|
|
(305, "SUMX2PY2", 2),
|
|
(306, "CHITEST", 2),
|
|
(307, "CORREL", 2),
|
|
(308, "COVAR", 2),
|
|
(309, "FORECAST", 3),
|
|
(310, "FTEST", 2),
|
|
(311, "INTERCEPT", 2),
|
|
(312, "PEARSON", 2),
|
|
(313, "RSQ", 2),
|
|
(314, "STEYX", 2),
|
|
(315, "SLOPE", 2),
|
|
(316, "TTEST", 4),
|
|
(317, "PROB", -1),
|
|
(318, "DEVSQ", -1),
|
|
(319, "GEOMEAN", -1),
|
|
(320, "HARMEAN", -1),
|
|
(321, "SUMSQ", -1),
|
|
(322, "KURT", -1),
|
|
(323, "SKEW", -1),
|
|
(324, "ZTEST", -1),
|
|
(325, "LARGE", 2),
|
|
(326, "SMALL", 2),
|
|
(327, "QUARTILE", 2),
|
|
(328, "PERCENTILE", 2),
|
|
(329, "PERCENTRANK", -1),
|
|
(330, "MODE", -1),
|
|
(331, "TRIMMEAN", 2),
|
|
(332, "TINV", 2),
|
|
(334, "MOVIE.COMMAND", -1),
|
|
(335, "GET.MOVIE", -1),
|
|
(336, "CONCATENATE", -1),
|
|
(337, "POWER", 2),
|
|
(338, "PIVOT.ADD.DATA", -1),
|
|
(339, "GET.PIVOT.TABLE", -1),
|
|
(340, "GET.PIVOT.FIELD", -1),
|
|
(341, "GET.PIVOT.ITEM", -1),
|
|
(342, "RADIANS", 1),
|
|
(343, "DEGREES", 1),
|
|
(344, "SUBTOTAL", -1),
|
|
(345, "SUMIF", -1),
|
|
(346, "COUNTIF", 2),
|
|
(347, "COUNTBLANK", 1),
|
|
(348, "SCENARIO.GET", -1),
|
|
(349, "OPTIONS.LISTS.GET", 1),
|
|
(350, "ISPMT", 4),
|
|
(351, "DATEDIF", 3),
|
|
(352, "DATESTRING", 1),
|
|
(353, "NUMBERSTRING", 2),
|
|
(354, "ROMAN", -1),
|
|
(355, "OPEN.DIALOG", -1),
|
|
(356, "SAVE.DIALOG", -1),
|
|
(357, "VIEW.GET", -1),
|
|
(358, "GETPIVOTDATA", -1),
|
|
(359, "HYPERLINK", -1),
|
|
(360, "PHONETIC", 1),
|
|
(361, "AVERAGEA", -1),
|
|
(362, "MAXA", -1),
|
|
(363, "MINA", -1),
|
|
(364, "STDEVPA", -1),
|
|
(365, "VARPA", -1),
|
|
(366, "STDEVA", -1),
|
|
(367, "VARA", -1),
|
|
(368, "BAHTTEXT", 1),
|
|
(369, "THAIDAYOFWEEK", 1),
|
|
(370, "THAIDIGIT", 1),
|
|
(371, "THAIMONTHOFYEAR", 1),
|
|
(372, "THAINUMSOUND", 1),
|
|
(373, "THAINUMSTRING", 1),
|
|
(374, "THAISTRINGLENGTH", 1),
|
|
(375, "ISTHAIDIGIT", 1),
|
|
(376, "ROUNDBAHTDOWN", 1),
|
|
(377, "ROUNDBAHTUP", 1),
|
|
(378, "THAIYEAR", 1),
|
|
(379, "RTD", -1),
|
|
];
|