下面就簡要的對于近期的學(xué)習(xí)做一個小結(jié).
- 結(jié)構(gòu):
PHPExcel的構(gòu)建具有很清晰的結(jié)構(gòu).明確了這個點,對于接下來的學(xué)習(xí)至關(guān)重要.
工作簿: 官方文檔中叫workbook.對應(yīng)PHPExcel中的PHPExcel類.
工作表: worksheet , 對應(yīng)PHPExcel中的sheet表格,具體類名我沒有看,可以通過getSheet獲取到.
單元格: Cell .存儲數(shù)據(jù)的最小單元.
以上的這三個概念是從上到下的包含關(guān)系,工作簿包含工作表,工作表包含單元格.
當(dāng)然還有另外兩個重要的抽象概念: 讀和寫.
在PHPExcel中,讀寫這兩個動作被抽象成了類.這個用法還是很方便的.當(dāng)我們需要讀一個表格的時候,我們使用reader類的對象加載文件.當(dāng)我們需要寫的時候,只要再用writer類打開對象即可.
- 類與方法.
PHPExcel里面的類有很多.我最近用到的沒有幾個.簡單列舉一下:
PHPExcel
PHPExcel_Writer
PHPExcel_Reader
PHPExcel_IOFactory (這就是傳說中的工廠設(shè)計模式,根據(jù)調(diào)用的方法,來構(gòu)造出writer類的對象或者reader類的對象.)
PHPExcel的方法我目前接觸到的如下:
PHPExcel_IOFactory::load 加載excel文件.默認(rèn)調(diào)用了reader類的方法,返回的是PHPExcel類的對象.
PHPExcel_IOFactory::createWriter(PHPExcel, "Excel5") 這里用來創(chuàng)建一個已經(jīng)存在的PHPExcel類的對象的寫類,后面的參數(shù)用來指定excel的后綴.常用的還有Excel007.
PHPExcel->getActiveSheet 獲取當(dāng)前默認(rèn)激活著的表格.
PHPExcel->getSheet(index) 根據(jù)index獲取sheet
PHPExcel->removeSheetByIndex 根據(jù)index刪除sheet表格.
PHPExcel->addSheet() 添加一個新的sheet表格
PHPExcel->addExternalSheet() 添加一個外部表格,說到這個方法,就要提到另外一個關(guān)鍵字,clone.這個關(guān)鍵字可以克隆出一個表格的復(fù)制品.
Sheet->getCellByColumnAndRow() 注意PHPExcel中,column的下標(biāo)是從0計算的,而row的下標(biāo)是從1開始計算的.
Sheet->getHighestRow() 獲取當(dāng)前表格的最大行數(shù)
Sheet->getHighestColumn() 獲取當(dāng)前表格的最大列數(shù)
PHPExcel_Cell::columnIndexFromString() 當(dāng)前的列數(shù)獲取到以后,這個列是以字母的形式存在的,用起來很不方便,所以就有了這個函數(shù),他可以把字母的列轉(zhuǎn)成數(shù)字.
Sheet->getCell(A1) 它的參數(shù)類似這個樣子.同樣可以獲取一個Cell的內(nèi)容.
Sheet->setCellValueByColumnAndRow(column, row, value) 給column和row指代的cell更新值為value
Sheet->getRowIterator() 獲取當(dāng)前行的迭代器
Sheet->insertNewRowBefore($currentRow, $rownum) 在當(dāng)前行的前面插入$rownum個行.
PHPExcel_Cell->setValue() 為當(dāng)前的Cell設(shè)置一個值.