2019年10月11日09:32:33php
官方使用文檔 https://phpspreadsheet.readthedocs.io/en/stable/topics/accessing-cells/html
api文檔 https://phpoffice.github.io/PhpSpreadsheet/master/PhpOffice.htmlhtml5
翻譯的是使用文檔,機翻+校驗,由於如今單個文檔內容放的東西有限分紅幾篇文章git
只翻譯標題的主要部分github
文檔部分主要的菜單↓↓web
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
。方法是:api
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;