\PhpOffice\PhpSpreadsheet\Writer\XlsWorksheet

Summary

Methods
Properties
Constants
__construct()
getByteOrder()
writeData()
writeEof()
close()
getData()
printRowColHeaders()
setOutline()
writeBlank()
writeUrlRange()
writeUrlWeb()
writeUrlInternal()
writeUrlExternal()
insertBitmap()
positionImage()
processBitmapGd()
processBitmap()
getEscher()
setEscher()
$_data
$_datasize
$phpSheet
$fontHashIndex
WRITE_FORMULA_NORMAL
WRITE_FORMULA_ERRORS
WRITE_FORMULA_RANGE
WRITE_FORMULA_EXCEPTION
append()
storeBof()
storeEof()
No protected properties found
N/A
addContinue()
writeBIFF8CellRangeAddressFixed()
writeNumber()
writeString()
writeRichTextString()
writeLabelSst()
writeBoolErr()
writeFormula()
writeStringRecord()
writeUrl()
writeRow()
writeDimensions()
writeWindow2()
writeDefaultRowHeight()
writeDefcol()
writeColinfo()
writeSelection()
writeMergedCells()
writeSheetLayout()
writeSheetProtection()
writeRangeProtection()
writePanes()
writeSetup()
writeHeader()
writeFooter()
writeHcenter()
writeVcenter()
writeMarginLeft()
writeMarginRight()
writeMarginTop()
writeMarginBottom()
writePrintHeaders()
writePrintGridlines()
writeGridset()
writeAutoFilterInfo()
writeGuts()
writeWsbool()
writeBreaks()
writeProtect()
writeScenProtect()
writeObjectProtect()
writePassword()
writeObjPicture()
writeZoom()
writeMsoDrawing()
writeDataValidity()
mapErrorCode()
writePageLayoutView()
writeCFRule()
writeCFHeader()
$byteOrder
$limit
$parser
$xlsStringMaxLength
$columnInfo
$selection
$activePane
$outlineOn
$outlineStyle
$outlineBelow
$outlineRight
$stringTotal
$stringUnique
$stringTable
$colors
$firstRowIndex
$lastRowIndex
$firstColumnIndex
$lastColumnIndex
$countCellStyleXfs
$escher
$preCalculateFormulas
$printHeaders
N/A

Constants

WRITE_FORMULA_NORMAL

WRITE_FORMULA_NORMAL = 0

WRITE_FORMULA_ERRORS

WRITE_FORMULA_ERRORS = -1

WRITE_FORMULA_RANGE

WRITE_FORMULA_RANGE = -2

WRITE_FORMULA_EXCEPTION

WRITE_FORMULA_EXCEPTION = -3

Properties

$_data

$_data : string

The string containing the data of the BIFF stream.

Type

string

$_datasize

$_datasize : int

The size of the data in bytes. Should be the same as strlen($this->_data).

Type

int

$phpSheet

$phpSheet : \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet

Sheet object.

Type

Worksheet

$fontHashIndex

$fontHashIndex : array

Array of font hashes associated to FONT records index.

Type

array

$byteOrder

$byteOrder : int

The byte order of this architecture. 0 => little endian, 1 => big endian.

Type

int

$limit

$limit : int

The maximum length for a BIFF record (excluding record header and length field). See addContinue().

Type

int

$parser

$parser : \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser

Formula parser.

Type

Parser

$xlsStringMaxLength

$xlsStringMaxLength : int

Maximum number of characters for a string (LABEL record in BIFF5).

Type

int

$columnInfo

$columnInfo : array

Array containing format information for columns.

Type

array

$selection

$selection : array

Array containing the selected area for the worksheet.

Type

array

$activePane

$activePane : int

The active pane for the worksheet.

Type

int

$outlineOn

$outlineOn : int

Whether to use outline.

Type

int

$outlineStyle

$outlineStyle : bool

Auto outline styles.

Type

bool

$outlineBelow

$outlineBelow : bool

Whether to have outline summary below.

Type

bool

$outlineRight

$outlineRight : bool

Whether to have outline summary at the right.

Type

bool

$stringTotal

$stringTotal : int

Reference to the total number of strings in the workbook.

Type

int

$stringUnique

$stringUnique : int

Reference to the number of unique strings in the workbook.

Type

int

$stringTable

$stringTable : array

Reference to the array containing all the unique strings in the workbook.

Type

array

$colors

$colors

Color cache.

$firstRowIndex

$firstRowIndex : int

Index of first used row (at least 0).

Type

int

$lastRowIndex

$lastRowIndex : int

Index of last used row. (no used rows means -1).

Type

int

$firstColumnIndex

$firstColumnIndex : int

Index of first used column (at least 0).

Type

int

$lastColumnIndex

$lastColumnIndex : int

Index of last used column (no used columns means -1).

Type

int

$countCellStyleXfs

$countCellStyleXfs : int

Count cell style Xfs.

Type

int

$escher

$escher : \PhpOffice\PhpSpreadsheet\Shared\Escher

Escher object corresponding to MSODRAWING.

Type

Escher

$preCalculateFormulas

$preCalculateFormulas : bool

Type

bool

$printHeaders

$printHeaders : int

Type

int

Methods

__construct()

__construct(int  $str_total, int  $str_unique, array  $str_table, array  $colors, \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser  $parser, bool  $preCalculateFormulas, \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet  $phpSheet) : mixed

Constructor.

Parameters

int $str_total

Total number of strings

int $str_unique

Total number of unique strings

array $str_table

String Table

array $colors

Colour Table

\PhpOffice\PhpSpreadsheet\Writer\Xls\Parser $parser

The formula parser created for the Workbook

bool $preCalculateFormulas

Flag indicating whether formulas should be calculated or just written

\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $phpSheet

The worksheet to write

Returns

mixed —

getByteOrder()

getByteOrder() : int

Determine the byte order and store it as class data to avoid recalculating it for each call to new().

Returns

int —

writeData()

writeData(string  $data) : string

General storage function like append, but returns string instead of modifying $this->_data.

Parameters

string $data

binary data to write

Returns

string —

writeEof()

writeEof() : mixed

Writes Excel EOF record to indicate the end of a BIFF stream.

Returns

mixed —

close()

close() : void

Add data to the beginning of the workbook (note the reverse order) and to the end of the workbook.

getData()

getData() : string

Retrieves data from memory in one chunk, or from disk in $buffer sized chunks.

Returns

string —

The data

printRowColHeaders()

printRowColHeaders(int  $print = 1) : void

Set the option to print the row and column headers on the printed page.

Parameters

int $print

Whether to print the headers or not. Defaults to 1 (print).

setOutline()

setOutline(bool  $visible = true, bool  $symbols_below = true, bool  $symbols_right = true, bool  $auto_style = false) : void

This method sets the properties for outlining and grouping. The defaults correspond to Excel's defaults.

Parameters

bool $visible
bool $symbols_below
bool $symbols_right
bool $auto_style

writeBlank()

writeBlank(int  $row, int  $col, mixed  $xfIndex) : int

Write a blank cell to the specified row and column (zero indexed).

A blank cell is used to specify formatting without adding a string or a number.

A blank cell without a format serves no purpose. Therefore, we don't write a BLANK record unless a format is specified.

Returns 0 : normal termination (including no format) -1 : insufficient number of arguments -2 : row or column out of range

Parameters

int $row

Zero indexed row

int $col

Zero indexed column

mixed $xfIndex

The XF format index

Returns

int —

writeUrlRange()

writeUrlRange(int  $row1, int  $col1, int  $row2, int  $col2, string  $url) : int

This is the more general form of writeUrl(). It allows a hyperlink to be written to a range of cells. This function also decides the type of hyperlink to be written. These are either, Web (http, ftp, mailto), Internal (Sheet1!A1) or external ('c:\temp\foo.xls#Sheet1!A1').

Parameters

int $row1

Start row

int $col1

Start column

int $row2

End row

int $col2

End column

string $url

URL string

Returns

int —

writeUrlWeb()

writeUrlWeb(int  $row1, int  $col1, int  $row2, int  $col2, string  $url) : int

Used to write http, ftp and mailto hyperlinks.

The link type ($options) is 0x03 is the same as absolute dir ref without sheet. However it is differentiated by the $unknown2 data stream.

Parameters

int $row1

Start row

int $col1

Start column

int $row2

End row

int $col2

End column

string $url

URL string

Returns

int —

writeUrlInternal()

writeUrlInternal(int  $row1, int  $col1, int  $row2, int  $col2, string  $url) : int

Used to write internal reference hyperlinks such as "Sheet1!A1".

Parameters

int $row1

Start row

int $col1

Start column

int $row2

End row

int $col2

End column

string $url

URL string

Returns

int —

writeUrlExternal()

writeUrlExternal(int  $row1, int  $col1, int  $row2, int  $col2, string  $url) : int

Write links to external directory names such as 'c:\foo.xls', c:\foo.xls#Sheet1!A1', '../../foo.xls'. and '../../foo.xls#Sheet1!A1'.

Note: Excel writes some relative links with the $dir_long string. We ignore these cases for the sake of simpler code.

Parameters

int $row1

Start row

int $col1

Start column

int $row2

End row

int $col2

End column

string $url

URL string

Returns

int —

insertBitmap()

insertBitmap(int  $row, int  $col, mixed  $bitmap, int  $x, int  $y, float  $scale_x = 1, float  $scale_y = 1) : void

Insert a 24bit bitmap image in a worksheet.

Parameters

int $row

The row we are going to insert the bitmap into

int $col

The column we are going to insert the bitmap into

mixed $bitmap

The bitmap filename or GD-image resource

int $x

the horizontal position (offset) of the image inside the cell

int $y

the vertical position (offset) of the image inside the cell

float $scale_x

The horizontal scale

float $scale_y

The vertical scale

positionImage()

positionImage(int  $col_start, int  $row_start, int  $x1, int  $y1, int  $width, int  $height) : void

Calculate the vertices that define the position of the image as required by the OBJ record.

+------------+------------+ | A | B | +-----+------------+------------+ | |(x1,y1) | | | 1 |(A1)._| | | | | | | | | | | | +-----+----| BITMAP |-----+ | | | | | | 2 | |______________. | | | | (B2)| | | | (x2,y2)| +---- +------------+------------+

Example of a bitmap that covers some of the area from cell A1 to cell B2.

Based on the width and height of the bitmap we need to calculate 8 vars: $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2. The width and height of the cells are also variable and have to be taken into account. The values of $col_start and $row_start are passed in from the calling function. The values of $col_end and $row_end are calculated by subtracting the width and height of the bitmap from the width and height of the underlying cells. The vertices are expressed as a percentage of the underlying cell width as follows (rhs values are in pixels):

  x1 = X / W *1024
  y1 = Y / H *256
  x2 = (X-1) / W *1024
  y2 = (Y-1) / H *256

  Where:  X is distance from the left side of the underlying cell
          Y is distance from the top of the underlying cell
          W is the width of the cell
          H is the height of the cell

The SDK incorrectly states that the height should be expressed as a percentage of 1024.

Parameters

int $col_start

Col containing upper left corner of object

int $row_start

Row containing top left corner of object

int $x1

Distance to left side of object

int $y1

Distance to top of object

int $width

Width of image frame

int $height

Height of image frame

processBitmapGd()

processBitmapGd(\GdImage|resource  $image) : array

Convert a GD-image into the internal format.

Parameters

\GdImage|resource $image

The image to process

Returns

array —

Array with data and properties of the bitmap

processBitmap()

processBitmap(string  $bitmap) : array

Convert a 24 bit bitmap into the modified internal format used by Windows.

This is described in BITMAPCOREHEADER and BITMAPCOREINFO structures in the MSDN library.

Parameters

string $bitmap

The bitmap to process

Returns

array —

Array with data and properties of the bitmap

getEscher()

getEscher() : \PhpOffice\PhpSpreadsheet\Shared\Escher

Get Escher object.

Returns

\PhpOffice\PhpSpreadsheet\Shared\Escher —

setEscher()

setEscher(\PhpOffice\PhpSpreadsheet\Shared\Escher  $pValue = null) : void

Set Escher object.

Parameters

\PhpOffice\PhpSpreadsheet\Shared\Escher $pValue

append()

append(string  $data) : void

General storage function.

Parameters

string $data

binary data to append

storeBof()

storeBof(int  $type) : void

Writes Excel BOF record to indicate the beginning of a stream or sub-stream in the BIFF file.

Parameters

int $type

type of BIFF file to write: 0x0005 Workbook, 0x0010 Worksheet

storeEof()

storeEof() : void

Writes Excel EOF record to indicate the end of a BIFF stream.

addContinue()

addContinue(string  $data) : string

Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In Excel 97 the limit is 8228 bytes. Records that are longer than these limits must be split up into CONTINUE blocks.

This function takes a long BIFF record and inserts CONTINUE records as necessary.

Parameters

string $data

The original binary data to be written

Returns

string —

A very convenient string of continue blocks

writeBIFF8CellRangeAddressFixed()

writeBIFF8CellRangeAddressFixed(string  $range) : string

Write a cell range address in BIFF8 always fixed range See section 2.5.14 in OpenOffice.org's Documentation of the Microsoft Excel File Format.

Parameters

string $range

E.g. 'A1' or 'A1:B6'

Returns

string —

Binary data

writeNumber()

writeNumber(int  $row, int  $col, float  $num, mixed  $xfIndex) : int

Write a double to the specified row and column (zero indexed).

An integer can be written as a double. Excel will display an integer. $format is optional.

Returns 0 : normal termination -2 : row or column out of range

Parameters

int $row

Zero indexed row

int $col

Zero indexed column

float $num

The number to write

mixed $xfIndex

The optional XF format

Returns

int —

writeString()

writeString(int  $row, int  $col, string  $str, int  $xfIndex) : void

Write a LABELSST record or a LABEL record. Which one depends on BIFF version.

Parameters

int $row

Row index (0-based)

int $col

Column index (0-based)

string $str

The string

int $xfIndex

Index to XF record

writeRichTextString()

writeRichTextString(int  $row, int  $col, string  $str, int  $xfIndex, array  $arrcRun) : void

Write a LABELSST record or a LABEL record. Which one depends on BIFF version It differs from writeString by the writing of rich text strings.

Parameters

int $row

Row index (0-based)

int $col

Column index (0-based)

string $str

The string

int $xfIndex

The XF format index for the cell

array $arrcRun

Index to Font record and characters beginning

writeLabelSst()

writeLabelSst(int  $row, int  $col, string  $str, mixed  $xfIndex) : void

Write a string to the specified row and column (zero indexed).

This is the BIFF8 version (no 255 chars limit). $format is optional.

Parameters

int $row

Zero indexed row

int $col

Zero indexed column

string $str

The string to write

mixed $xfIndex

The XF format index for the cell

writeBoolErr()

writeBoolErr(int  $row, int  $col, int  $value, bool  $isError, int  $xfIndex) : int

Write a boolean or an error type to the specified row and column (zero indexed).

Parameters

int $row

Row index (0-based)

int $col

Column index (0-based)

int $value
bool $isError

Error or Boolean?

int $xfIndex

Returns

int —

writeFormula()

writeFormula(int  $row, int  $col, string  $formula, mixed  $xfIndex, mixed  $calculatedValue) : int

Write a formula to the specified row and column (zero indexed).

The textual representation of the formula is passed to the parser in Parser.php which returns a packed binary string.

Returns 0 : WRITE_FORMULA_NORMAL normal termination -1 : WRITE_FORMULA_ERRORS formula errors (bad formula) -2 : WRITE_FORMULA_RANGE row or column out of range -3 : WRITE_FORMULA_EXCEPTION parse raised exception, probably due to definedname

Parameters

int $row

Zero indexed row

int $col

Zero indexed column

string $formula

The formula text string

mixed $xfIndex

The XF format index

mixed $calculatedValue

Calculated value

Returns

int —

writeStringRecord()

writeStringRecord(string  $stringValue) : void

Write a STRING record. This.

Parameters

string $stringValue

writeUrl()

writeUrl(int  $row, int  $col, string  $url) : int

Write a hyperlink.

This is comprised of two elements: the visible label and the invisible link. The visible label is the same as the link unless an alternative string is specified. The label is written using the writeString() method. Therefore the 255 characters string limit applies. $string and $format are optional.

The hyperlink can be to a http, ftp, mail, internal sheet (not yet), or external directory url.

Returns 0 : normal termination -2 : row or column out of range -3 : long string truncated to 255 chars

Parameters

int $row

Row

int $col

Column

string $url

URL string

Returns

int —

writeRow()

writeRow(int  $row, int  $height, int  $xfIndex, bool  $hidden = false, int  $level) : void

This method is used to set the height and format for a row.

Parameters

int $row

The row to set

int $height

Height we are giving to the row. Use null to set XF without setting height

int $xfIndex

The optional cell style Xf index to apply to the columns

bool $hidden

The optional hidden attribute

int $level

The optional outline level for row, in range [0,7]

writeDimensions()

writeDimensions() : void

Writes Excel DIMENSIONS to define the area in which there is data.

writeWindow2()

writeWindow2() : void

Write BIFF record Window2.

writeDefaultRowHeight()

writeDefaultRowHeight() : void

Write BIFF record DEFAULTROWHEIGHT.

writeDefcol()

writeDefcol() : void

Write BIFF record DEFCOLWIDTH if COLINFO records are in use.

writeColinfo()

writeColinfo(array  $col_array) : void

Write BIFF record COLINFO to define column widths.

Note: The SDK says the record length is 0x0B but Excel writes a 0x0C length record.

Parameters

array $col_array

This is the only parameter received and is composed of the following: 0 => First formatted column, 1 => Last formatted column, 2 => Col width (8.43 is Excel default), 3 => The optional XF format of the column, 4 => Option flags. 5 => Optional outline level

writeSelection()

writeSelection() : void

Write BIFF record SELECTION.

writeMergedCells()

writeMergedCells() : void

Store the MERGEDCELLS records for all ranges of merged cells.

writeSheetLayout()

writeSheetLayout() : void

Write SHEETLAYOUT record.

writeSheetProtection()

writeSheetProtection() : void

Write SHEETPROTECTION.

writeRangeProtection()

writeRangeProtection() : void

Write BIFF record RANGEPROTECTION.

Openoffice.org's Documentaion of the Microsoft Excel File Format uses term RANGEPROTECTION for these records Microsoft Office Excel 97-2007 Binary File Format Specification uses term FEAT for these records

writePanes()

writePanes() : void

Writes the Excel BIFF PANE record.

The panes can either be frozen or thawed (unfrozen). Frozen panes are specified in terms of an integer number of rows and columns. Thawed panes are specified in terms of Excel's units for rows and columns.

writeSetup()

writeSetup() : void

Store the page setup SETUP BIFF record.

writeHeader()

writeHeader() : void

Store the header caption BIFF record.

writeFooter()

writeFooter() : void

Store the footer caption BIFF record.

writeHcenter()

writeHcenter() : void

Store the horizontal centering HCENTER BIFF record.

writeVcenter()

writeVcenter() : void

Store the vertical centering VCENTER BIFF record.

writeMarginLeft()

writeMarginLeft() : void

Store the LEFTMARGIN BIFF record.

writeMarginRight()

writeMarginRight() : void

Store the RIGHTMARGIN BIFF record.

writeMarginTop()

writeMarginTop() : void

Store the TOPMARGIN BIFF record.

writeMarginBottom()

writeMarginBottom() : void

Store the BOTTOMMARGIN BIFF record.

writePrintHeaders()

writePrintHeaders() : void

Write the PRINTHEADERS BIFF record.

writePrintGridlines()

writePrintGridlines() : void

Write the PRINTGRIDLINES BIFF record. Must be used in conjunction with the GRIDSET record.

writeGridset()

writeGridset() : void

Write the GRIDSET BIFF record. Must be used in conjunction with the PRINTGRIDLINES record.

writeAutoFilterInfo()

writeAutoFilterInfo() : void

Write the AUTOFILTERINFO BIFF record. This is used to configure the number of autofilter select used in the sheet.

writeGuts()

writeGuts() : void

Write the GUTS BIFF record. This is used to configure the gutter margins where Excel outline symbols are displayed. The visibility of the gutters is controlled by a flag in WSBOOL.

writeWsbool()

writeWsbool() : void

Write the WSBOOL BIFF record, mainly for fit-to-page. Used in conjunction with the SETUP record.

writeBreaks()

writeBreaks() : void

Write the HORIZONTALPAGEBREAKS and VERTICALPAGEBREAKS BIFF records.

writeProtect()

writeProtect() : void

Set the Biff PROTECT record to indicate that the worksheet is protected.

writeScenProtect()

writeScenProtect() : void

Write SCENPROTECT.

writeObjectProtect()

writeObjectProtect() : void

Write OBJECTPROTECT.

writePassword()

writePassword() : void

Write the worksheet PASSWORD record.

writeObjPicture()

writeObjPicture(int  $colL, int  $dxL, int  $rwT, int  $dyT, int  $colR, int  $dxR, int  $rwB, int  $dyB) : void

Store the OBJ record that precedes an IMDATA record. This could be generalise to support other Excel objects.

Parameters

int $colL

Column containing upper left corner of object

int $dxL

Distance from left side of cell

int $rwT

Row containing top left corner of object

int $dyT

Distance from top of cell

int $colR

Column containing lower right corner of object

int $dxR

Distance from right of cell

int $rwB

Row containing bottom right corner of object

int $dyB

Distance from bottom of cell

writeZoom()

writeZoom() : void

Store the window zoom factor. This should be a reduced fraction but for simplicity we will store all fractions with a numerator of 100.

writeMsoDrawing()

writeMsoDrawing() : void

Write MSODRAWING record.

writeDataValidity()

writeDataValidity() : void

Store the DATAVALIDATIONS and DATAVALIDATION records.

mapErrorCode()

mapErrorCode(string  $errorCode) : int

Map Error code.

Parameters

string $errorCode

Returns

int —

writePageLayoutView()

writePageLayoutView() : void

Write PLV Record.

writeCFRule()

writeCFRule(\PhpOffice\PhpSpreadsheet\Style\Conditional  $conditional) : void

Write CFRule Record.

Parameters

\PhpOffice\PhpSpreadsheet\Style\Conditional $conditional

writeCFHeader()

writeCFHeader() : void

Write CFHeader record.