phpspreadsheet 中文文檔 粗翻版


2019年10月11日09:32:33

官方使用文檔  https://phpspreadsheet.readthedocs.io/en/stable/topics/accessing-cells/

api文檔 https://phpoffice.github.io/PhpSpreadsheet/master/PhpOffice.html

翻譯的是使用文檔,機翻+校驗,因為現在單個文檔內容放的東西有限分成幾篇文章

只翻譯標題的主要部分

phpspreadsheet 中文文檔(一) 訪問單元格                      未校驗

phpspreadsheet 中文文檔(二) 結構+自動篩選                未校驗

phpspreadsheet 中文文檔(三) 計算引擎                         未校驗

phpspreadsheet 中文文檔(四) 創建電子表格+檔案格式    未校驗

phpspreadsheet 中文文檔(五)節約內存+PHPExcel遷移      未校驗

phpspreadsheet 中文文檔(六)讀寫文件+讀取文件           未校驗

phpspreadsheet 中文文檔(七)技巧和訣竅                   未校驗

phpspreadsheet 中文文檔(八)讀寫文件+讀取文件        未校驗

 

文檔部分主要的菜單↓↓

Accessing cells                                     訪問單元格                                             
  Setting a cell value by coordinate              通過坐標設置單元格值
  Excel DataTypes Excel                           數據類型
  Setting a range of cells from an array          設置數組中的單元格范圍
  Retrieving a cell value by coordinate           通過坐標檢索單元格值
  Setting a cell value by column and row          按列和行設置單元格值
  Retrieving a cell value by column and row       按列和行檢索單元格值
  Retrieving a range of cell values to an array   檢索單元格值范圍到數組
  Looping through cells                           遍歷單元格
  Using value binders to facilitate data entry    使用值綁定器簡化數據輸入
Architecture                                        結構
  Architecture                                    結構
  Schematical                                     示意圖
  AutoLoader                                      自動加載器
  Spreadsheet in memory                           表格在內存中使用
  Readers and writers                             讀取器和寫入器
  Fluent interfaces                               優美的接口
AutoFilter Reference                                自動篩選引用
  Introduction                                    簡介
  Setting an AutoFilter area on a worksheet       在工作表上設置自動篩選區域
  Autofilter Expressions                          自動篩選表達式
  Executing an AutoFilter                         執行自動篩選
  AutoFilter Sorting                              自動篩選排序
Calculation Engine                                  計算引擎
  Using the PhpSpreadsheet calculation engine     使用phpspreadsheet計算引擎
  Calculation Cache                               計算緩存
  Known limitations                               已知限制
  Handling Date and Time Values                   處理日期和時間值
  Function Reference                              函數引用
Creating a spreadsheet                              創建電子表格
  The Spreadsheet class                           Spreadsheet類
  Clearing a Workbook from memory                 從內存中清除工作簿
File Formats                                        文件格式
  Xls
  Xml
  Xlsx
  Ods
  Slk
  Gnumeric
  Csv
  Html
Memory saving                                       節約內存
    Beware of TTL                                   注意TTL使用
    Common use cases                                常見用例
Migration from PHPExcel                             從PHPExcel遷移
  Automated tool                                  自動化工具
  Manual changes                                  需要手動更改
Reading and writing to file                         讀寫文件
  \PhpOffice\PhpSpreadsheet\IOFactory             IOFactory類
  Excel 2007 (SpreadsheetML) file format          Excel 2007 文件格式
  Excel 5 (BIFF) file format                      Excel 5 文件格式
  Excel 2003 XML file format                      Excel 2003 文件格式
  Symbolic LinK (SYLK)                            符號鏈接(Sylk)
  Open/Libre Office (.ods)
  CSV (Comma Separated Values)
  HTML
  PDF
  Generating Excel files from templates (read, modify, write)     從模板生成Excel文件(讀取,修改,寫入)
  Generating Excel files from HTML content                        從HTML內容生成Excel文件
Reading Files                                       讀取文件
  Security                                         安全問題
  Loading a Spreadsheet File                       加載電子表格文件
  Creating a Reader and Loading a Spreadsheet File    創建閱讀器並加載電子表格文件
  Spreadsheet Reader Options                      電子表格閱讀器選項
  Error Handling                                  錯誤處理
  Helper Methods                                  輔助方法
Recipes                                             技巧和訣竅demo
  Setting a spreadsheet's metadata                設置電子表格的元數據
  Setting a spreadsheet's active sheet            設置電子表格的活動工作表
  Write a date or time into a cell                將日期或時間寫入單元格
  Write a formula into a cell                     將公式寫入單元格
  Locale Settings for Formulae                    公式的區域設置
  Write a newline character "\n" in a cell (ALT+"Enter")          在單元格中寫入換行符“ \ n”
  Explicitly set a cell's datatype                明確設置單元格的數據類型
  Change a cell into a clickable URL              將單元格更改為可點擊的網址
  Setting Printer Options for Excel files         設置Excel文件的打印機選項
  Styles                                          樣式設置
  Conditional formatting a cell                   有條件地格式化單元格
  Add a comment to a cell                         在單元格中添加評論
  Apply autofilter to a range of cells            將自動過濾器應用於指定范圍的單元格
  Setting security on a spreadsheet               在電子表格上設置安全性
  Setting data validation on a cell               在單元上設置數據驗證
  Setting a column's width                        設置列的寬度
  Show/hide a column                              顯示/隱藏列
  Group/outline a column                          分組/概述一列
  Setting a row's height                          設置行的高度
  Show/hide a row                                 顯示/隱藏行
  Group/outline a row                             分組/概述行
  Merge/unmerge cells                             合並/取消合並單元格
  Inserting rows/columns                          插入行/列
  Add a drawing to a worksheet                    將工程圖添加到工作表
  Reading Images from a worksheet                 從工作表中讀取圖像
  Add rich text to a cell                         向單元格添加富文本
  Define a named range                            定義一個命名范圍
  Redirect output to a client's web browser       將輸出重定向到客戶端的Web瀏覽器
  Setting the default column width                設置默認列寬
  Setting the default row height                  設置默認行高
  Add a GD drawing to a worksheet                 將GD工程圖添加到工作表
  Setting worksheet zoom level                    設置工作表縮放級別
  Sheet tab color                                 工作表標簽顏色
  Creating worksheets in a workbook               在工作簿中創建工作表
  Hidden worksheets (Sheet states)                隱藏的工作表(Sheet狀態)
  Right-to-left worksheet                         從右到左的工作表
Configuration Settings                              配置設定
    Cell collection caching                         單元格集合緩存
    Language/Locale                                 語言/地區
Worksheets                                          工作表
  Adding a new Worksheet                          添加一個新的工作表
  Copying Worksheets                              復制工作表
  Removing a Worksheet                            刪除工作表

 

一點個人經驗:

//第一行凍結
            $sheet->freezePaneByColumnAndRow(1, 1);
            $sheet->freezePaneByColumnAndRow(1, 2);
//吧列轉換成A B C AA等列的形式
Coordinate::stringFromColumnIndex('9')

專用的類來操縱坐標

曾經存在於PHPExcel_Cell其中的坐標處理方法被提取到一個專用的新類中\PhpOffice\PhpSpreadsheet\Cell\Coordinate方法是:

  • absoluteCoordinate()
  • absoluteReference()
  • buildRange()
  • columnIndexFromString()
  • coordinateFromString()
  • extractAllCellReferencesInRange()
  • getRangeBoundaries()
  • mergeRangesInCollection()
  • rangeBoundaries()
  • rangeDimension()
  • splitRange()
  • stringFromColumnIndex()
//給某一個單元格添加注釋
$sheet->getComment(Coordinate::stringFromColumnIndex('9') . $Row)->getText()->createTextRun('注釋');

 

在一系列單元格上設置自動過濾器。

$spreadsheet->getActiveSheet()->setAutoFilter('A1:E20');

 

如果要將整個工作表設置為自動篩選區域

$spreadsheet->getActiveSheet()->setAutoFilter(
    $spreadsheet->getActiveSheet()
        ->calculateWorksheetDimension()
);
要將過濾器表達式應用於autoFilter范圍,首先需要確定要將此過濾器應用於哪一列。

$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter();
$columnFilter = $autoFilter->getColumn('C');

 

\vendor\phpoffice\phpspreadsheet\samples\index.php   這里面有很多的demo

 

//給表格設置樣式
$styleArray = self::getStyleArray($Row);
$sheet->getStyle('B2:G8')->applyFromArray($styleArray);

 

// 設置富文本,但是支持的html的標簽不多
$html5
= '<strong>bold</strong>, <em>italic</em>, <strong><em>bold+italic</em></strong>'; $wizard = new HtmlHelper(); $richText = $wizard->toRichTextObject($html1); $spreadsheet->getActiveSheet()->setCellValue('A1', $richText);

注意這里對閉合的標簽支持會好一些,盡量使用閉合標簽,解析效果會好一點
是吧html標簽解析成xml轉義進excel的

 

//設置富文本備注的寬度
$wizard = new Html();
$richText = $wizard->toRichTextObject($html1);
$sheet->getComment(Coordinate::stringFromColumnIndex('10') . $Row)->setWidth('800pt')->getText()->createTextRun($richText);

 

// Create new Spreadsheet object
use PhpOffice\PhpSpreadsheet\RichText\RichText;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Font;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PhpOffice\PhpSpreadsheet\Style\Protection;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;

$helper->log('Create new Spreadsheet object');
$spreadsheet = new Spreadsheet();

// 設置文檔相關屬性
$helper->log('Set document properties');
$spreadsheet->getProperties()->setCreator('Maarten Balliauw')
    ->setLastModifiedBy('Maarten Balliauw')
    ->setTitle('Office 2007 XLSX Test Document')
    ->setSubject('Office 2007 XLSX Test Document')
    ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.')
    ->setKeywords('office 2007 openxml php')
    ->setCategory('Test result file');

// 創建一張表,表示銷售數據
$helper->log('Add some data');
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->setCellValue('B1', 'Invoice');
$spreadsheet->getActiveSheet()->setCellValue('D1', Date::PHPToExcel(gmmktime(0, 0, 0, date('m'), date('d'), date('Y'))));
$spreadsheet->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_DATE_XLSX15);
$spreadsheet->getActiveSheet()->setCellValue('E1', '#12566');

$spreadsheet->getActiveSheet()->setCellValue('A3', 'Product Id');
$spreadsheet->getActiveSheet()->setCellValue('B3', 'Description');
$spreadsheet->getActiveSheet()->setCellValue('C3', 'Price');
$spreadsheet->getActiveSheet()->setCellValue('D3', 'Amount');
$spreadsheet->getActiveSheet()->setCellValue('E3', 'Total');

$spreadsheet->getActiveSheet()->setCellValue('A4', '1001');
$spreadsheet->getActiveSheet()->setCellValue('B4', 'PHP for dummies');
$spreadsheet->getActiveSheet()->setCellValue('C4', '20');
$spreadsheet->getActiveSheet()->setCellValue('D4', '1');
$spreadsheet->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")');

$spreadsheet->getActiveSheet()->setCellValue('A5', '1012');
$spreadsheet->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies');
$spreadsheet->getActiveSheet()->setCellValue('C5', '22');
$spreadsheet->getActiveSheet()->setCellValue('D5', '2');
$spreadsheet->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")');

$spreadsheet->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")');
$spreadsheet->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")');
$spreadsheet->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")');
$spreadsheet->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")');

$spreadsheet->getActiveSheet()->setCellValue('D11', 'Total excl.:');
$spreadsheet->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)');

$spreadsheet->getActiveSheet()->setCellValue('D12', 'VAT:');
$spreadsheet->getActiveSheet()->setCellValue('E12', '=E11*0.21');

$spreadsheet->getActiveSheet()->setCellValue('D13', 'Total incl.:');
$spreadsheet->getActiveSheet()->setCellValue('E13', '=E11+E12');

// 添加備注
$helper->log('Add comments');

$spreadsheet->getActiveSheet()->getComment('E11')->setAuthor('PhpSpreadsheet');
$commentRichText = $spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun('PhpSpreadsheet:');
$commentRichText->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n");
$spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');

$spreadsheet->getActiveSheet()->getComment('E12')->setAuthor('PhpSpreadsheet');
$commentRichText = $spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun('PhpSpreadsheet:');
$commentRichText->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n");
$spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.');

$spreadsheet->getActiveSheet()->getComment('E13')->setAuthor('PhpSpreadsheet');
$commentRichText = $spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun('PhpSpreadsheet:');
$commentRichText->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n");
$spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.');
$spreadsheet->getActiveSheet()->getComment('E13')->setWidth('100pt');
$spreadsheet->getActiveSheet()->getComment('E13')->setHeight('100pt');
$spreadsheet->getActiveSheet()->getComment('E13')->setMarginLeft('150pt');
$spreadsheet->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE');

// 添加富文本字符串
$helper->log('Add rich-text string');
$richText = new RichText();
$richText->createText('This invoice is ');

$payable = $richText->createTextRun('payable within thirty days after the end of the month');
$payable->getFont()->setBold(true);
$payable->getFont()->setItalic(true);
$payable->getFont()->setColor(new Color(Color::COLOR_DARKGREEN));

$richText->createText(', unless specified otherwise on the invoice.');

$spreadsheet->getActiveSheet()->getCell('A18')->setValue($richText);

// 合並單元格
$helper->log('Merge cells');
$spreadsheet->getActiveSheet()->mergeCells('A18:E22');
$spreadsheet->getActiveSheet()->mergeCells('A28:B28'); // Just to test...
$spreadsheet->getActiveSheet()->unmergeCells('A28:B28'); // Just to test...
// 保護單元格不被修改
$helper->log('Protect cells');
$spreadsheet->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
$spreadsheet->getActiveSheet()->protectCells('A3:E13', 'PhpSpreadsheet');

// 設置單元格編號格式
$helper->log('Set cell number formats');
$spreadsheet->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);

// 設置列寬
$helper->log('Set column widths');
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(12);

// 設置字體
$helper->log('Set fonts');
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(Font::UNDERLINE_SINGLE);
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(Color::COLOR_WHITE);

$spreadsheet->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(Color::COLOR_WHITE);
$spreadsheet->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(Color::COLOR_WHITE);

$spreadsheet->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);

// 設置對其方式
$helper->log('Set alignments');
$spreadsheet->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
$spreadsheet->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
$spreadsheet->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);

$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_JUSTIFY);
$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);

$spreadsheet->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true);

// 在列周圍設置細的黑色邊框輪廓
$helper->log('Set thin black border outline around column');
$styleThinBlackBorderOutline = [
    'borders' => [
        'outline' => [
            'borderStyle' => Border::BORDER_THIN,
            'color' => ['argb' => 'FF000000'],
        ],
    ],
];
$spreadsheet->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline);

// 在“總計”周圍設置粗的棕色邊框輪廓
$helper->log('Set thick brown border outline around Total');
$styleThickBrownBorderOutline = [
    'borders' => [
        'outline' => [
            'borderStyle' => Border::BORDER_THICK,
            'color' => ['argb' => 'FF993300'],
        ],
    ],
];
$spreadsheet->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline);

// 設置填充
$helper->log('Set fills');
$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080');

// 使用替代方法設置標題行的樣式
$helper->log('Set style for header row using alternative method');
$spreadsheet->getActiveSheet()->getStyle('A3:E3')->applyFromArray(
    [
            'font' => [
                'bold' => true,
            ],
            'alignment' => [
                'horizontal' => Alignment::HORIZONTAL_RIGHT,
            ],
            'borders' => [
                'top' => [
                    'borderStyle' => Border::BORDER_THIN,
                ],
            ],
            'fill' => [
                'fillType' => Fill::FILL_GRADIENT_LINEAR,
                'rotation' => 90,
                'startColor' => [
                    'argb' => 'FFA0A0A0',
                ],
                'endColor' => [
                    'argb' => 'FFFFFFFF',
                ],
            ],
        ]
);

$spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray(
    [
            'alignment' => [
                'horizontal' => Alignment::HORIZONTAL_LEFT,
            ],
            'borders' => [
                'left' => [
                    'borderStyle' => Border::BORDER_THIN,
                ],
            ],
        ]
);

$spreadsheet->getActiveSheet()->getStyle('B3')->applyFromArray(
    [
            'alignment' => [
                'horizontal' => Alignment::HORIZONTAL_LEFT,
            ],
        ]
);

$spreadsheet->getActiveSheet()->getStyle('E3')->applyFromArray(
    [
            'borders' => [
                'right' => [
                    'borderStyle' => Border::BORDER_THIN,
                ],
            ],
        ]
);

// 取消單元格保護
$helper->log('Unprotect a cell');
$spreadsheet->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(Protection::PROTECTION_UNPROTECTED);

// 在工作表中添加超鏈接
$helper->log('Add a hyperlink to an external website');
$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('https://www.example.com');
$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
$spreadsheet->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);

$helper->log('Add a hyperlink to another cell on a different worksheet within the workbook');
$spreadsheet->getActiveSheet()->setCellValue('E27', 'Terms and conditions');
$spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1");
$spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions');
$spreadsheet->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);

// 將工程圖添加到工作表
$helper->log('Add a drawing to the worksheet');
$drawing = new Drawing();
$drawing->setName('Logo');
$drawing->setDescription('Logo');
$drawing->setPath(__DIR__ . '/../images/officelogo.jpg');
$drawing->setHeight(36);
$drawing->setWorksheet($spreadsheet->getActiveSheet());

// 將工程圖添加到工作表
$helper->log('Add a drawing to the worksheet');
$drawing = new Drawing();
$drawing->setName('Paid');
$drawing->setDescription('Paid');
$drawing->setPath(__DIR__ . '/../images/paid.png');
$drawing->setCoordinates('B15');
$drawing->setOffsetX(110);
$drawing->setRotation(25);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
$drawing->setWorksheet($spreadsheet->getActiveSheet());

// 將工程圖添加到工作表
$helper->log('Add a drawing to the worksheet');
$drawing = new Drawing();
$drawing->setName('PhpSpreadsheet logo');
$drawing->setDescription('PhpSpreadsheet logo');
$drawing->setPath(__DIR__ . '/../images/PhpSpreadsheet_logo.png');
$drawing->setHeight(36);
$drawing->setCoordinates('D24');
$drawing->setOffsetX(10);
$drawing->setWorksheet($spreadsheet->getActiveSheet());

// 嘗試插入和刪除行和列
$helper->log('Play around with inserting and removing rows and columns');
$spreadsheet->getActiveSheet()->insertNewRowBefore(6, 10);
$spreadsheet->getActiveSheet()->removeRow(6, 10);
$spreadsheet->getActiveSheet()->insertNewColumnBefore('E', 5);
$spreadsheet->getActiveSheet()->removeColumn('E', 5);

// 設置頁眉和頁腳。 當不使用奇數/偶數的不同標頭時,將采用奇數標頭。
$helper->log('Set header/footer');
$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D');
$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&RPage &P of &N');

// 設置頁面方向和大小
$helper->log('Set page orientation and size');
$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_PORTRAIT);
$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(PageSetup::PAPERSIZE_A4);

// 重命名第一個工作表
$helper->log('Rename first worksheet');
$spreadsheet->getActiveSheet()->setTitle('Invoice');

// 在默認工作表之后創建一個新的工作表
$helper->log('Create a second Worksheet object');
$spreadsheet->createSheet();

// 看不懂什么語言
$sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.';

// 將一些數據添加到第二張表中,類似於一些不同的數據類型
$helper->log('Add some data');
$spreadsheet->setActiveSheetIndex(1);
$spreadsheet->getActiveSheet()->setCellValue('A1', 'Terms and conditions');
$spreadsheet->getActiveSheet()->setCellValue('A3', $sLloremIpsum);
$spreadsheet->getActiveSheet()->setCellValue('A4', $sLloremIpsum);
$spreadsheet->getActiveSheet()->setCellValue('A5', $sLloremIpsum);
$spreadsheet->getActiveSheet()->setCellValue('A6', $sLloremIpsum);

// 設置工作表標簽的顏色
$helper->log('Set the worksheet tab color');
$spreadsheet->getActiveSheet()->getTabColor()->setARGB('FF0094FF');

// 設置對其方式
$helper->log('Set alignments');
$spreadsheet->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true);

// 設置列寬
$helper->log('Set column widths');
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(80);

// 設置字體
$helper->log('Set fonts');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(Font::UNDERLINE_SINGLE);

$spreadsheet->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8);

// 將圖形添加到工作表
$helper->log('Add a drawing to the worksheet');
$drawing = new Drawing();
$drawing->setName('Terms and conditions');
$drawing->setDescription('Terms and conditions');
$drawing->setPath(__DIR__ . '/../images/termsconditions.jpg');
$drawing->setCoordinates('B14');
$drawing->setWorksheet($spreadsheet->getActiveSheet());

// 設置頁面方向和大小
$helper->log('Set page orientation and size');
$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(PageSetup::PAPERSIZE_A4);

// 重命名第二個工作表
$helper->log('Rename second worksheet');
$spreadsheet->getActiveSheet()->setTitle('Terms and conditions');

// 將活動工作表索引設置為第一張工作表,因此Excel將其打開為第一張工作表
$spreadsheet->setActiveSheetIndex(0);

return $spreadsheet;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM