⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 excelfuncii2.pas

📁 一个经典的读写Excel的控件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ExcelFuncII2;

{
********************************************************************************
******* XLSReadWriteII V2.00                                             *******
*******                                                                  *******
******* Copyright(C) 1999,2004 Lars Arvidsson, Axolot Data               *******
*******                                                                  *******
******* email: components@axolot.com                                     *******
******* URL:   http://www.axolot.com                                     *******
********************************************************************************
** Users of the XLSReadWriteII component must accept the following            **
** disclaimer of warranty:                                                    **
**                                                                            **
** XLSReadWriteII is supplied as is. The author disclaims all warranties,     **
** expressedor implied, including, without limitation, the warranties of      **
** merchantability and of fitness for any purpose. The author assumes no      **
** liability for damages, direct or consequential, which may result from the  **
** use of XLSReadWriteII.                                                     **
********************************************************************************
}

{$B-}

interface

type PPTGName7 = ^TPTGName7;
     TPTGName7 = packed record
     NameIndex: word;
     Reserved: array[0..11] of byte;
     end;

type PPTGName8 = ^TPTGName8;
     TPTGName8 = packed record
     NameIndex: word;
     Reserved: word;
     end;

type PPTGNameX7 = ^TPTGNameX7;
     TPTGNameX7 = packed record
     ExtSheet: word;
     Reserved1: array[0..7] of byte;
     NameIndex: word;
     Reserved2: array[0..11] of byte;
     end;

type PPTGNameX8 = ^TPTGNameX8;
     TPTGNameX8 = packed record
     ExtSheet: word;
     NameIndex: word;
     Reserved: word;
     end;

type PPTGTbl = ^TPTGTbl;
     TPTGTbl = packed record
     Row: word;
     Col: word;
     end;

type PPTGRef7 = ^TPTGRef7;
     TPTGRef7 = packed record
     Row: word;
     Col: byte;
     end;

type PPTGRef8 = ^TPTGRef8;
     TPTGRef8 = packed record
     Row: word;
     Col: word;
     end;

type PPTGRef3d8 = ^TPTGRef3d8;
     TPTGRef3d8 = packed record
     Index: word;
     Row: word;
     Col: word;
     end;

type PPTGArea3d8 = ^TPTGArea3d8;
     TPTGArea3d8 = packed record
     Index: word;
     Row1,Row2: word;
     Col1,Col2: word;
     end;

type PPTGRef3d7 = ^TPTGRef3d7;
     TPTGRef3d7 = packed record
     Index: word;
     Res: array[0..7] of byte;
     IndexFirst: word;
     IndexLast: word;
     Row: word;
     Col: byte;
     end;

type PPTGArea3d7 = ^TPTGArea3d7;
     TPTGArea3d7 = packed record
     SheetIndex: word;
     Res: array[0..7] of byte;
     IndexFirst: word;
     IndexLast: word;
     Row1,Row2: word;
     Col1,Col2: byte;
     end;

type PPTGArea7 = ^TPTGArea7;
     TPTGArea7 = packed record
     Row1: word;
     Row2: word;
     Col1: byte;
     Col2: byte;
     end;

type PPTGArea8 = ^TPTGArea8;
     TPTGArea8 = packed record
     Row1: word;
     Row2: word;
     Col1: word;
     Col2: word;
     end;

type TArrayFloat = packed record
     ID: byte;
     Value: double;
     end;

type TArrayString = packed record
     ID: byte;
     Len: word;
     Data: array[0..65535] of byte;
     end;

type PPTGArray = ^TPTGArray;
     TPTGArray = packed record
     Cols: byte;
     Rows: word;
     Data: array[0..255] of TArrayFloat;
     end;

type TFunctionId = (fiCount,fiIf,fiIsNa,fiIsError,fiSum,fiAverage,fiMin,fiMax,
                    fiRow,fiColumn,fiNA,fiNPV,fiSTDEV,fiDollar,fiFixed,fiSin,
                    fiCos,fiTan,fiATan,fiPI,fiSqrt,fiExp,fiLN,fiLog10,fiAbs,fiInt,
                    fiSign,fiRound,fiLookup);

type TExcelFunctions = packed record
     Min,Max: byte;
     Name: WideString;
     end;


type TExcelFunctionsArray = array[0..380] of TExcelFunctions;


// Min and Max = $FF; illegal function name.
const ExcelFunctions: TExcelFunctionsArray = (
{000} (Min: 01; Max: 99; Name: 'COUNT'),
{001} (Min: 02; Max: 03; Name: 'IF'),
{002} (Min: 01; Max: 01; Name: 'ISNA'),
{003} (Min: 01; Max: 01; Name: 'ISERROR'),
{004} (Min: 01; Max: 99; Name: 'SUM'),
{005} (Min: 01; Max: 99; Name: 'AVERAGE'),
{006} (Min: 01; Max: 99; Name: 'MIN'),
{007} (Min: 01; Max: 99; Name: 'MAX'),
{008} (Min: 00; Max: 01; Name: 'ROW'),
{009} (Min: 00; Max: 01; Name: 'COLUMN'),
{010} (Min: 01; Max: 01; Name: 'NA'),
{011} (Min: 01; Max: 99; Name: 'NPV'),
{012} (Min: 01; Max: 99; Name: 'STDEV'),
{013} (Min: 01; Max: 02; Name: 'DOLLAR'),
{014} (Min: 01; Max: 03; Name: 'FIXED'),
{015} (Min: 01; Max: 01; Name: 'SIN'),
{016} (Min: 01; Max: 01; Name: 'COS'),
{017} (Min: 01; Max: 01; Name: 'TAN'),
{018} (Min: 01; Max: 01; Name: 'ATAN'),
{019} (Min: 00; Max: 00; Name: 'PI'),
{020} (Min: 01; Max: 01; Name: 'SQRT'),
{021} (Min: 01; Max: 01; Name: 'EXP'),
{022} (Min: 01; Max: 01; Name: 'LN'),
{023} (Min: 01; Max: 01; Name: 'LOG10'),
{024} (Min: 01; Max: 01; Name: 'ABS'),
{025} (Min: 01; Max: 01; Name: 'INT'),
{026} (Min: 01; Max: 01; Name: 'SIGN'),
{027} (Min: 02; Max: 02; Name: 'ROUND'),
{028} (Min: 02; Max: 03; Name: 'LOOKUP'),
{029} (Min: 01; Max: 03; Name: 'INDEX'),
{030} (Min: 02; Max: 02; Name: 'REPT'),
{031} (Min: 01; Max: 03; Name: 'MID'),
{032} (Min: 01; Max: 01; Name: 'LEN'),
{033} (Min: 01; Max: 01; Name: 'VALUE'),
{034} (Min: 00; Max: 00; Name: 'TRUE'),
{035} (Min: 00; Max: 00; Name: 'FALSE'),
{036} (Min: 01; Max: 99; Name: 'AND'),
{037} (Min: 01; Max: 99; Name: 'OR'),
{038} (Min: 01; Max: 01; Name: 'NOT'),
{039} (Min: 02; Max: 02; Name: 'MOD'),
{040} (Min: 03; Max: 03; Name: 'DCOUNT'),
{041} (Min: 03; Max: 03; Name: 'DSUM'),
{042} (Min: 03; Max: 03; Name: 'DAVERAGE'),
{043} (Min: 03; Max: 03; Name: 'DMIN'),
{044} (Min: 03; Max: 03; Name: 'DMAX'),
{045} (Min: 03; Max: 03; Name: 'DSTDEV'),
{046} (Min: 01; Max: 99; Name: 'VAR'),
{047} (Min: 03; Max: 03; Name: 'DVAR'),
{048} (Min: 02; Max: 02; Name: 'TEXT'),
{049} (Min: 01; Max: 04; Name: 'LINEST'),
{050} (Min: 01; Max: 04; Name: 'TREND'),
{051} (Min: 01; Max: 04; Name: 'LOGEST'),
{052} (Min: 01; Max: 04; Name: 'GROWTH'),
{053} (Min: $FF; Max: $FF; Name: 'GOTO'),
{054} (Min: $FF; Max: $FF; Name: 'HALT'),
{055} (Min: $FF; Max: $FF; Name: 'RETURN'),
{056} (Min: 02; Max: 05; Name: 'PV'),
{057} (Min: 02; Max: 05; Name: 'FV'),
{058} (Min: 02; Max: 05; Name: 'NPER'),
{059} (Min: 03; Max: 05; Name: 'PMT'),
{060} (Min: 03; Max: 05; Name: 'RATE'),
{061} (Min: 03; Max: 03; Name: 'MIRR'),
{062} (Min: 01; Max: 02; Name: 'IRR'),
{063} (Min: 00; Max: 00; Name: 'RAND'),
{064} (Min: 02; Max: 03; Name: 'MATCH'),
{065} (Min: 03; Max: 03; Name: 'DATE'),
{066} (Min: 03; Max: 03; Name: 'TIME'),
{067} (Min: 01; Max: 01; Name: 'DAY'),
{068} (Min: 01; Max: 01; Name: 'MONTH'),
{069} (Min: 01; Max: 01; Name: 'YEAR'),
{070} (Min: 01; Max: 02; Name: 'WEEKDAY'),
{071} (Min: 01; Max: 01; Name: 'HOUR'),
{072} (Min: 01; Max: 01; Name: 'MINUTE'),
{073} (Min: 01; Max: 01; Name: 'SECOND'),
{074} (Min: 00; Max: 00; Name: 'NOW'),
{075} (Min: 01; Max: 01; Name: 'AREAS'),
{076} (Min: 01; Max: 01; Name: 'ROWS'),
{077} (Min: 01; Max: 01; Name: 'COLUMNS'),
{078} (Min: 02; Max: 04; Name: 'OFFSET'),
{079} (Min: $FF; Max: $FF; Name: 'ABSREF'),
{080} (Min: $FF; Max: $FF; Name: 'RELREF'),
{081} (Min: $FF; Max: $FF; Name: 'ARGUMENT'),
{082} (Min: 02; Max: 03; Name: 'SEARCH'),
{083} (Min: 01; Max: 01; Name: 'TRANSPOSE'),
{084} (Min: $FF; Max: $FF; Name: 'ERROR'),
{085} (Min: $FF; Max: $FF; Name: 'STEP'),
{086} (Min: 01; Max: 01; Name: 'TYPE'),
{087} (Min: $FF; Max: $FF; Name: 'ECHO'),
{088} (Min: $FF; Max: $FF; Name: 'SET.NAME'),
{089} (Min: $FF; Max: $FF; Name: 'CALLER'),
{090} (Min: $FF; Max: $FF; Name: 'DEREF'),
{091} (Min: $FF; Max: $FF; Name: 'WINDOWS'),
{092} (Min: $FF; Max: $FF; Name: 'SERIES'),
{093} (Min: $FF; Max: $FF; Name: 'DOCUMENTS'),
{094} (Min: $FF; Max: $FF; Name: 'ACTIVE.CELL'),
{095} (Min: $FF; Max: $FF; Name: 'SELECTION'),
{096} (Min: $FF; Max: $FF; Name: 'RESULT'),
{097} (Min: 02; Max: 02; Name: 'ATAN2'),
{098} (Min: 01; Max: 01; Name: 'ASIN'),
{099} (Min: 01; Max: 01; Name: 'ACOS'),
{100} (Min: 02; Max: 99; Name: 'CHOOSE'),
{101} (Min: 03; Max: 04; Name: 'HLOOKUP'),
{102} (Min: 03; Max: 04; Name: 'VLOOKUP'),
{103} (Min: $FF; Max: $FF; Name: 'LINKS'),
{104} (Min: $FF; Max: $FF; Name: 'INPUT'),
{105} (Min: 01; Max: 01; Name: 'ISREF'),
{106} (Min: $FF; Max: $FF; Name: 'GET.FORMULA'),
{107} (Min: $FF; Max: $FF; Name: 'GET.NAME'),
{108} (Min: $FF; Max: $FF; Name: 'SET.VALUE'),
{109} (Min: 01; Max: 02; Name: 'LOG'),
{110} (Min: $FF; Max: $FF; Name: 'EXEC'),
{111} (Min: 01; Max: 01; Name: 'CHAR'),
{112} (Min: 01; Max: 01; Name: 'LOWER'),
{113} (Min: 01; Max: 01; Name: 'UPPER'),
{114} (Min: 01; Max: 01; Name: 'PROPER'),
{115} (Min: 01; Max: 02; Name: 'LEFT'),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -