<?php
namespace PhpOffice\PhpSpreadsheet\Reader;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
use PhpOffice\PhpSpreadsheet\NamedRange;
use PhpOffice\PhpSpreadsheet\RichText\RichText;
use PhpOffice\PhpSpreadsheet\Shared\CodePage;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Shared\Escher;
use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
use PhpOffice\PhpSpreadsheet\Shared\File;
use PhpOffice\PhpSpreadsheet\Shared\OLE;
use PhpOffice\PhpSpreadsheet\Shared\OLERead;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Borders;
use PhpOffice\PhpSpreadsheet\Style\Font;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PhpOffice\PhpSpreadsheet\Style\Protection;
use PhpOffice\PhpSpreadsheet\Style\Style;
use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use PhpOffice\PhpSpreadsheet\Worksheet\SheetView;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
// Original file header of ParseXL (used as the base for this class):
// --------------------------------------------------------------------------------
// Adapted from Excel_Spreadsheet_Reader developed by users bizon153,
// trex005, and mmp11 (SourceForge.net)
// http://sourceforge.net/projects/phpexcelreader/
// Primary changes made by canyoncasa (dvc) for ParseXL 1.00 ...
// Modelled moreso after Perl Excel Parse/Write modules
// Added Parse_Excel_Spreadsheet object
// Reads a whole worksheet or tab as row,column array or as
// associated hash of indexed rows and named column fields
// Added variables for worksheet (tab) indexes and names
// Added an object call for loading individual woorksheets
// Changed default indexing defaults to 0 based arrays
// Fixed date/time and percent formats
// Includes patches found at SourceForge...
// unicode patch by nobody
// unpack("d") machine depedency patch by matchy
// boundsheet utf16 patch by bjaenichen
// Renamed functions for shorter names
// General code cleanup and rigor, including <80 column width
// Included a testcase Excel file and PHP example calls
// Code works for PHP 5.x
// Primary changes made by canyoncasa (dvc) for ParseXL 1.10 ...
// http://sourceforge.net/tracker/index.php?func=detail&aid=1466964&group_id=99160&atid=623334
// Decoding of formula conditions, results, and tokens.
// Support for user-defined named cells added as an array "namedcells"
// Patch code for user-defined named cells supports single cells only.
// NOTE: this patch only works for BIFF8 as BIFF5-7 use a different
// external sheet reference structure
class Xls extends BaseReader
{
// ParseXL definitions
const XLS_BIFF8 = 0x0600;
const XLS_BIFF7 = 0x0500;
const XLS_WORKBOOKGLOBALS = 0x0005;
const XLS_WORKSHEET = 0x0010;
// record identifiers
const XLS_TYPE_FORMULA = 0x0006;
const XLS_TYPE_EOF = 0x000a;
const XLS_TYPE_PROTECT = 0x0012;
const XLS_TYPE_OBJECTPROTECT = 0x0063;
const XLS_TYPE_SCENPROTECT = 0x00dd;
const XLS_TYPE_PASSWORD = 0x0013;
const XLS_TYPE_HEADER = 0x0014;
const XLS_TYPE_FOOTER = 0x0015;
const XLS_TYPE_EXTERNSHEET = 0x0017;
const XLS_TYPE_DEFINEDNAME = 0x0018;
const XLS_TYPE_VERTICALPAGEBREAKS = 0x001a;
const XLS_TYPE_HORIZONTALPAGEBREAKS = 0x001b;
const XLS_TYPE_NOTE = 0x001c;
const XLS_TYPE_SELECTION = 0x001d;
const XLS_TYPE_DATEMODE = 0x0022;
const XLS_TYPE_EXTERNNAME = 0x0023;
const XLS_TYPE_LEFTMARGIN = 0x0026;
const XLS_TYPE_RIGHTMARGIN = 0x0027;
const XLS_TYPE_TOPMARGIN = 0x0028;
const XLS_TYPE_BOTTOMMARGIN = 0x0029;
const XLS_TYPE_PRINTGRIDLINES = 0x002b;
const XLS_TYPE_FILEPASS = 0x002f;
const XLS_TYPE_FONT = 0x0031;
const XLS_TYPE_CONTINUE = 0x003c;
const XLS_TYPE_PANE = 0x0041;
const XLS_TYPE_CODEPAGE = 0x0042;
const XLS_TYPE_DEFCOLWIDTH = 0x0055;
const XLS_TYPE_OBJ = 0x005d;
const XLS_TYPE_COLINFO = 0x007d;
const XLS_TYPE_IMDATA = 0x007f;
const XLS_TYPE_SHEETPR = 0x0081;
const XLS_TYPE_HCENTER = 0x0083;
const XLS_TYPE_VCENTER = 0x0084;
const XLS_TYPE_SHEET = 0x0085;
const XLS_TYPE_PALETTE = 0x0092;
const XLS_TYPE_SCL = 0x00a0;
const XLS_TYPE_PAGESETUP = 0x00a1;
const XLS_TYPE_MULRK = 0x00bd;
const XLS_TYPE_MULBLANK = 0x00be;
const XLS_TYPE_DBCELL = 0x00d7;
const XLS_TYPE_XF = 0x00e0;
const XLS_TYPE_MERGEDCELLS = 0x00e5;
const XLS_TYPE_MSODRAWINGGROUP = 0x00eb;
const XLS_TYPE_MSODRAWING = 0x00ec;
const XLS_TYPE_SST = 0x00fc;
const XLS_TYPE_LABELSST = 0x00fd;
const XLS_TYPE_EXTSST = 0x00ff;
const XLS_TYPE_EXTERNALBOOK = 0x01ae;
const XLS_TYPE_DATAVALIDATIONS = 0x01b2;
const XLS_TYPE_TXO = 0x01b6;
const XLS_TYPE_HYPERLINK = 0x01b8;
const XLS_TYPE_DATAVALIDATION = 0x01be;
const XLS_TYPE_DIMENSION = 0x0200;
const XLS_TYPE_BLANK = 0x0201;
const XLS_TYPE_NUMBER = 0x0203;
const XLS_TYPE_LABEL = 0x0204;
const XLS_TYPE_BOOLERR = 0x0205;
const XLS_TYPE_STRING = 0x0207;
const XLS_TYPE_ROW = 0x0208;
const XLS_TYPE_INDEX = 0x020b;
const XLS_TYPE_ARRAY = 0x0221;
const XLS_TYPE_DEFAULTROWHEIGHT = 0x0225;
const XLS_TYPE_WINDOW2 = 0x023e;
const XLS_TYPE_RK = 0x027e;
const XLS_TYPE_STYLE = 0x0293;
const XLS_TYPE_FORMAT = 0x041e;
const XLS_TYPE_SHAREDFMLA = 0x04bc;
const XLS_TYPE_BOF = 0x0809;
const XLS_TYPE_SHEETPROTECTION = 0x0867;
const XLS_TYPE_RANGEPROTECTION = 0x0868;
const XLS_TYPE_SHEETLAYOUT = 0x0862;
const XLS_TYPE_XFEXT = 0x087d;
const XLS_TYPE_PAGELAYOUTVIEW = 0x088b;
const XLS_TYPE_UNKNOWN = 0xffff;
// Encryption type
const MS_BIFF_CRYPTO_NONE = 0;
const MS_BIFF_CRYPTO_XOR = 1;
const MS_BIFF_CRYPTO_RC4 = 2;
// Size of stream blocks when using RC4 encryption
const REKEY_BLOCK = 0x400;
/**
* Summary Information stream data.
*
* @var string
*/
private $summaryInformation;
/**
* Extended Summary Information stream data.
*
* @var string
*/
private $documentSummaryInformation;
/**
* Workbook stream data. (Includes workbook globals substream as well as sheet substreams).
*
* @var string
*/
private $data;
/**
* Size in bytes of $this->data.
*
* @var int
*/
private $dataSize;
/**
* Current position in stream.
*
* @var int
*/
private $pos;
/**
* Workbook to be returned by the reader.
*
* @var Spreadsheet
*/
private $spreadsheet;
/**
* Worksheet that is currently being built by the reader.
*
* @var Worksheet
*/
private $phpSheet;
/**
* BIFF version.
*
* @var int
*/
private $version;
/**
* Codepage set in the Excel file being read. Only important for BIFF5 (Excel 5.0 - Excel 95)
* For BIFF8 (Excel 97 - Excel 2003) this will always have the value 'UTF-16LE'.
*
* @var string
*/
private $codepage;
/**
* Shared formats.
*
* @var array
*/
private $formats;
/**
* Shared fonts.
*
* @var array
*/
private $objFonts;
/**
* Color palette.
*
* @var array
*/
private $palette;
/**
* Worksheets.
*
* @var array
*/
private $sheets;
/**
* External books.
*
* @var array
*/
private $externalBooks;
/**
* REF structures. Only applies to BIFF8.
*
* @var array
*/
private $ref;
/**
* External names.
*
PHP台账管理系统,实现业务员提成和客户对账.zip
需积分: 0 109 浏览量
更新于2024-01-17
收藏 18.38MB ZIP 举报
PHP台账管理系统,实现业务员提成和客户对账,基于ThinkPHP5.1+Mysql+Layui。模块:商品,用户,客户,台账明细,台账审核,日志,角色权限,区域分类
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发Node.js、C++、Java、python、web、C#等语言的项目开发与学习资料
硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等
操作系统:LInux、Android树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。
网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。
云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
妄北y
- 粉丝: 2w+
- 资源: 1万+
最新资源
- 批量去除图像背景Matlab代码.rar
- 了解 MATLAB 图像处理的基础知识MATLAB代码.rar
- 两种非刚性点集配准算法的 MATLAB 实现.rar
- 拍摄图像并将其保存为视频Matlab代码.rar
- 频域中的图像恢复(维纳滤波器)Matlab代码.rar
- 强调图像中内核形状(例如直线)的过滤器Matlab代码.rar
- 匹配图像特征(第 3 章):学生竞赛团队的计算机视觉训练Matlab代码.rar
- 求解 2D 和 3D 分数矢量亥姆霍兹方程,用于非刚性图像配准Matlab代码.rar
- 求 RGB 图像的平均向量Matlab代码.rar
- 球磁通量计算 (2D) 的高效实现Matlab代码.rar
- 全局到局部坐标变换矩阵Matlab代码.rar
- 曲面的非刚性套准Matlab代码.rar
- 飞秒激光模型 comsol
- springboot项目学生网上选课系统的设计与实现.zip
- springboot项目医疗挂号管理系统.zip
- springboot项目疫情打卡健康评测系统.zip