php-ext-xlswriter/ide-helper/helper.php

723 lines
14 KiB
PHP
Raw Permalink Normal View History

2024-03-05 10:01:08 +08:00
<?php
namespace Vtiful\Kernel;
/**
* Class Excel
*
* @author viest
*
* @package Vtiful\Kernel
*/
class Excel
{
const TYPE_STRING = 0x01;
const TYPE_INT = 0x02;
const TYPE_DOUBLE = 0x04;
const TYPE_TIMESTAMP = 0x08;
const SKIP_NONE = 0x00;
const SKIP_EMPTY_ROW = 0x01;
const SKIP_EMPTY_CELLS = 0x02;
const GRIDLINES_HIDE_ALL = 0;
const GRIDLINES_SHOW_SCREEN = 1;
const GRIDLINES_SHOW_PRINT = 2;
const GRIDLINES_SHOW_ALL = 3;
/**
* Excel constructor.
*
* @param array $config
*/
public function __construct(array $config)
{
//
}
/**
* File Name
*
* @param string $fileName
* @param string $sheetName
*
* @return Excel
*
* @author viest
*/
public function fileName(string $fileName, string $sheetName = 'Sheet1'): self
{
return $this;
}
/**
* Const memory model
*
* @param string $fileName
* @param string $sheetName
*
* @return Excel
*
* @author viest
*/
public function constMemory(string $fileName, string $sheetName = 'Sheet1'): self
{
return $this;
}
/**
* Add a new worksheet to a workbook.
*
* The worksheet name must be a valid Excel worksheet name, i.e. it must be
* less than 32 character and it cannot contain any of the characters:
*
* / \ [ ] : * ?
*
* In addition, you cannot use the same, case insensitive, `$sheetName` for more
* than one worksheet.
*
* @param string|NULL $sheetName
*
* @return Excel
*
* @author viest
*/
public function addSheet(?string $sheetName): self
{
return $this;
}
/**
* Checkout worksheet
*
* @param string $sheetName
*
* @return Excel
*
* @author viest
*/
public function checkoutSheet(string $sheetName): self
{
return $this;
}
/**
* Insert data on the first line of the worksheet
*
* @param array $header
*
* @return Excel
*
* @author viest
*/
public function header(array $header): self
{
return $this;
}
/**
* Insert data on the worksheet
*
* @param array $data
*
* @return Excel
*
* @author viest
*/
public function data(array $data): self
{
return $this;
}
/**
* Generate file
*
* @return string
*
* @author viest
*/
public function output(): string
{
return 'FilePath';
}
/**
* Get file resource
*
* @return resource
*
* @author viest
*/
public function getHandle()
{
//
}
/**
* Auto filter on the worksheet
*
* @param string $range
*
* @return Excel
*
* @author viest
*/
public function autoFilter(string $range): self
{
return $this;
}
/**
* Insert data on the cell
*
* @param int $row
* @param int $column
* @param int|string|double $data
* @param string|null $format
* @param resource|null $formatHandle
*
* @return Excel
*
* @author viest
*/
public function insertText(int $row, int $column, $data, string $format = NULL, $formatHandle = NULL): self
{
return $this;
}
/**
* Insert date on the cell
*
* @param int $row
* @param int $column
* @param int $timestamp
* @param string|NULL $format
* @param resource|null $formatHandle
*
* @return Excel
*
* @author viest
*/
public function insertDate(int $row, int $column, int $timestamp, string $format = NULL, $formatHandle = NULL): self
{
return $this;
}
/**
* Insert chart on the cell
*
* @param int $row
* @param int $column
* @param resource $chartResource
*
* @return Excel
*
* @author viest
*/
public function insertChart(int $row, int $column, $chartResource): self
{
return $this;
}
/**
* Insert url on the cell
*
* @param int $row
* @param int $column
* @param string $url
* @param resource|null $formatHandle
*
* @return Excel
*
* @author viest
*/
public function insertUrl(int $row, int $column, string $url, $formatHandle = NULL): self
{
return $this;
}
/**
* Insert image on the cell
*
* @param int $row
* @param int $column
* @param string $imagePath
* @param float $width
* @param float $height
*
* @return Excel
*
* @author viest
*/
public function insertImage(int $row, int $column, string $imagePath, float $width = 1, float $height = 1): self
{
return $this;
}
/**
* Insert Formula on the cell
*
* @param int $row
* @param int $column
* @param string $formula
*
* @return Excel
*
* @author viest
*/
public function insertFormula(int $row, int $column, string $formula): self
{
return $this;
}
/**
* Merge cells
*
* @param string $range
* @param string $data
*
* @return Excel
*
* @author viest
*/
public function MergeCells(string $range, string $data): self
{
return $this;
}
/**
* Set column cells width or format
*
* @param string $range
* @param float $cellWidth
* @param resource|null $formatHandle
*
* @return Excel
*
* @author viest
*/
public function setColumn(string $range, float $cellWidth, $formatHandle = NULL): self
{
return $this;
}
/**
* Set row cells height or format
*
* @param string $range
* @param float $cellHeight
* @param resource|null $formatHandle
*
* @return Excel
*
* @author viest
*/
public function setRow(string $range, float $cellHeight, $formatHandle = NULL): self
{
return $this;
}
/**
* Open xlsx file
*
* @param string $fileName
*
* @return Excel
*
* @author viest
*/
public function openFile(string $fileName): self
{
return $this;
}
/**
* Open sheet
*
* default open first sheet
*
* @param string|NULL $sheetName
* @param int skipFlag
*
* @return Excel
*
* @author viest
*/
public function openSheet(string $sheetName = NULL, int $skipFlag = 0x00): self
{
return $this;
}
/**
* Set row cell data type
*
* @param array $types
*
* @return Excel
*
* @author viest
*/
public function setType(array $types): self
{
return $this;
}
/**
* Read values from the sheet
*
* @return array
*
* @author viest
*/
public function getSheetData(): array
{
return [];
}
/**
* Read values from the sheet
*
* @return array
*
* @author viest
*/
public function nextRow(): array
{
return [];
}
/**
* Next Cell In Callback
*
* @param callable $callback function(int $row, int $cell, string $data)
* @param string|NULL $sheetName sheet name
*
* @author viest
*/
public function nextCellCallback(callable $callback, string $sheetName = NULL): void
{
//
}
/**
* Freeze panes
*
* freezePanes(1, 0); // Freeze the first row.
* freezePanes(0, 1); // Freeze the first column.
* freezePanes(1, 1); // Freeze first row/column.
*
* @param int $row
* @param int $column
*
* @return $this
*
* @author viest
*/
public function freezePanes(int $row, int $column): self
{
return $this;
}
/**
* Gridline
*
* Display or hide screen and print gridlines using one of the values of
*
* \Vtiful\Kernel\Excel::GRIDLINES_HIDE_ALL
* \Vtiful\Kernel\Excel::GRIDLINES_SHOW_ALL
* \Vtiful\Kernel\Excel::GRIDLINES_SHOW_PRINT
* \Vtiful\Kernel\Excel::GRIDLINES_SHOW_SCREEN
*
* Excel default is that the screen gridlines are on and the printed worksheet is off.
*
* @param int $option
*
* @return $this
*
* @author viest
*/
public function gridline(int $option): self
{
return $this;
}
/**
* Worksheet zoom
*
* Set the worksheet zoom factor in the range 10 <= zoom <= 400:
*
* @param int $scale
*
* @return $this
*
* @author viest
*/
public function zoom(int $scale): self
{
return $this;
}
}
/**
* Class Format
*
* @author viest
*
* @package Vtiful\Kernel
*/
class Format
{
const UNDERLINE_SINGLE = 0x00;
const UNDERLINE_DOUBLE = 0x00;
const UNDERLINE_SINGLE_ACCOUNTING = 0x00;
const UNDERLINE_DOUBLE_ACCOUNTING = 0x00;
const FORMAT_ALIGN_LEFT = 0x00;
const FORMAT_ALIGN_CENTER = 0x00;
const FORMAT_ALIGN_RIGHT = 0x00;
const FORMAT_ALIGN_FILL = 0x00;
const FORMAT_ALIGN_JUSTIFY = 0x00;
const FORMAT_ALIGN_CENTER_ACROSS = 0x00;
const FORMAT_ALIGN_DISTRIBUTED = 0x00;
const FORMAT_ALIGN_VERTICAL_TOP = 0x00;
const FORMAT_ALIGN_VERTICAL_BOTTOM = 0x00;
const FORMAT_ALIGN_VERTICAL_CENTER = 0x00;
const FORMAT_ALIGN_VERTICAL_JUSTIFY = 0x00;
const FORMAT_ALIGN_VERTICAL_DISTRIBUTED = 0x00;
const COLOR_BLACK = 0x00;
const COLOR_BLUE = 0x00;
const COLOR_BROWN = 0x00;
const COLOR_CYAN = 0x00;
const COLOR_GRAY = 0x00;
const COLOR_GREEN = 0x00;
const COLOR_LIME = 0x00;
const COLOR_MAGENTA = 0x00;
const COLOR_NAVY = 0x00;
const COLOR_ORANGE = 0x00;
const COLOR_PINK = 0x00;
const COLOR_PURPLE = 0x00;
const COLOR_RED = 0x00;
const COLOR_SILVER = 0x00;
const COLOR_WHITE = 0x00;
const COLOR_YELLOW = 0x00;
const PATTERN_NONE = 0x00;
const PATTERN_SOLID = 0x00;
const PATTERN_MEDIUM_GRAY = 0x00;
const PATTERN_DARK_GRAY = 0x00;
const PATTERN_LIGHT_GRAY = 0x00;
const PATTERN_DARK_HORIZONTAL = 0x00;
const PATTERN_DARK_VERTICAL = 0x00;
const PATTERN_DARK_DOWN = 0x00;
const PATTERN_DARK_UP = 0x00;
const PATTERN_DARK_GRID = 0x00;
const PATTERN_DARK_TRELLIS = 0x00;
const PATTERN_LIGHT_HORIZONTAL = 0x00;
const PATTERN_LIGHT_VERTICAL = 0x00;
const PATTERN_LIGHT_DOWN = 0x00;
const PATTERN_LIGHT_UP = 0x00;
const PATTERN_LIGHT_GRID = 0x00;
const PATTERN_LIGHT_TRELLIS = 0x00;
const PATTERN_GRAY_125 = 0x00;
const PATTERN_GRAY_0625 = 0x00;
const BORDER_THIN = 0x00;
const BORDER_MEDIUM = 0x00;
const BORDER_DASHED = 0x00;
const BORDER_DOTTED = 0x00;
const BORDER_THICK = 0x00;
const BORDER_DOUBLE = 0x00;
const BORDER_HAIR = 0x00;
const BORDER_MEDIUM_DASHED = 0x00;
const BORDER_DASH_DOT = 0x00;
const BORDER_MEDIUM_DASH_DOT = 0x00;
const BORDER_DASH_DOT_DOT = 0x00;
const BORDER_MEDIUM_DASH_DOT_DOT = 0x00;
const BORDER_SLANT_DASH_DOT = 0x00;
/**
* Format constructor.
*
* @param resource $fileHandle
*/
public function __construct($fileHandle)
{
//
}
/**
* Wrap
*
* @return Format
*
* @author viest
*/
public function wrap(): self
{
return $this;
}
/**
* Bold
*
* @return Format
*
* @author viest
*/
public function bold(): self
{
return $this;
}
/**
* Italic
*
* @return Format
*
* @author viest
*/
public function italic(): self
{
return $this;
}
/**
* Cells border
*
* @param int $style const BORDER_***
*
* @return Format
*
* @author viest
*/
public function border(int $style): self
{
return $this;
}
/**
* Align
*
* @param int ...$style const FORMAT_ALIGN_****
*
* @return Format
*
* @author viest
*/
public function align(...$style): self
{
return $this;
}
/**
* Number format
*
* @param string $format
*
* #,##0
*
* @return Format
*
* @author viest
*/
public function number(string $format): self
{
return $this;
}
/**
* Font color
*
* @param int $color const COLOR_****
*
* @return Format
*
* @author viest
*/
public function fontColor(int $color): self
{
return $this;
}
/**
* Font
*
* @param string $fontName
*
* @return Format
*
* @author viest
*/
public function font(string $fontName): self
{
return $this;
}
/**
* Font size
*
* @param float $size
*
* @return Format
*
* @author viest
*/
public function fontSize(float $size): self
{
return $this;
}
/**
* String strikeout
*
* @return Format
*
* @author viest
*/
public function strikeout(): self
{
return $this;
}
/**
* Underline
*
* @param int $style const UNDERLINE_****
*
* @return Format
*
* @author viest
*/
public function underline(int $style): self
{
return $this;
}
/**
* Cell background
*
* @param int $color const COLOR_****
* @param int $pattern const PATTERN_****
*
* @return Format
*
* @author viest
*/
public function background(int $color, int $pattern = self::PATTERN_SOLID): self
{
return $this;
}
/**
* Format to resource
*
* @return resource
*
* @author viest
*/
public function toResource()
{
//
}
}