Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[1042] XOOPS模組開發進階」目錄
MarkDown
6-10 資料庫語法
1. jquery入門及連動選單
1-1 /templates/phone_book_index_b3.html
1-2 /index.php
1-3 /ajax.php
2. 表單驗證及點擊編輯
2-1 /admin/main.php
2-2 /templates/phone_book_adm_main_b3.html
2-3 /index.php
2-4 /templates/phone_book_index_b3.html
2-5 /save_phone_book.php
2-6 /get_name.php
3. 自適應表格及拉動排序
3-1 /index.php
3-2 /templates/phone_book_index_b3.html
3-3 /admin/cate.php
3-4 /templates/phone_book_adm_cate_b3.html
3-5 /admin/main.php
3-6 /templates/phone_book_adm_main_b3.html
3-7 (利用FooTable的分頁+json功能)/index.php
3-8 (利用FooTable的分頁+json功能)/templates/phone_book_index_b3.html
3-9 (利用FooTable的分頁+json功能)/columns.json
3-10 (利用FooTable的分頁+json功能)/rows.json
3-11 (舊版FooTable)/index.php
3-12 (舊版FooTable)/templates/phone_book_index_b3.html
3-13 (舊版FooTable)tadtools/FooTable.php
4. 大小月曆應用
4-1 /templates/phone_book_adm_main_b3.html
4-2 /interface_menu.php
4-3 /birthday.php
4-4 /templates/phone_book_birthday_b3.html
4-5 /xoops_version.php
4-5 /get_event.php
5. Google圖表應用及頁籤
5-1 /interface_menu.php
5-2 /chart.php
5-3 /templates/phone_book_chart_b3.html
5-4 /xoops_version.php
5-5 /ajax.php
5-6 /templates/phone_book_index_b3.html
5-7 /index.php
5-8 /templates/phone_book_adm_main_b3.html
6. 各種文字檔的匯出匯入
6-1 /interface_menu.php
6-2 /html.php
6-3 /index.php
6-4 /function.php
6-5 /csv.php
6-6 /templates/phone_book_adm_main_b3.html
6-7 /admin/main.php
6-8 /json.php
6-9 /get_json.php
6-10 資料庫語法
7. Excel的匯出與匯入
7-1 /header.php
7-2 /excel.php
7-3 /test.php
7-4 /excel_one.php
7-5 /templates/phone_book_adm_main_b3.html
7-6 /admin/main.php
7-7 /index.php
7-8 /templates/phone_book_index_b3.html
8. 產生PDF檔
8-1 /header.php
8-2 /pdf.php
8-3 /pdf.php (多檔下載版)
9. 輸出Word檔及圖片檔
9-1 /header.php
9-2 /word.php
9-3 /index.php
9-4 /templates/phone_book_index_b3.html
7-1 /header.php
\[1042\] XOOPS模組開發進階 ==================== [](http://www.tad0616.net/uploads/tad_book3/file/39/7.pdf) ### 一、 匯出Excel 1. PHPExcel官網:
2. 線上API手冊:
3. 詳細使用範例(日文):
4. 可讀取、產生Excel 97~2007的檔案,甚至可輸出PDF、CSV、HTML檔。 5. 安裝需求:PHP 5.2.0 以上、需開啟php\_zip、php\_xml、php\_gd2函式庫。 ``` setPreCalculateFormulas(false); $objWriter->save('php://output'); exit; ``` ### 二、 常用方法: 1. 建立工作表並指定名稱 ``` $objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表 $objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet $objActSheet->setTitle("通訊錄"); //設定標題 $objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改 ``` 2. 指定儲存格內容,有以下類型可設定:TYPE\_BOOL、TYPE\_ERROR、TYPE\_FORMULA、TYPE\_INLINE、TYPE\_NULL、TYPE\_NUMERIC、TYPE\_STRING ``` $objActSheet->setCellValue("A1", '姓名')->setCellValue("B1", '電話'); $objActSheet->setCellValueExplicit("C2", '0987654321',PHPExcel_Cell_DataType:: TYPE_STRING); ``` 3. 調整儲存格欄寬 ``` $objActSheet->getColumnDimension('A')->setWidth(8); //固定寬度8 $objActSheet->getColumnDimension('B')->setAutoSize(true); //自動寬度 ``` 4. 設定文字字型、粗細、顏色、儲存格背景顏色 ``` $objPHPExcel->getDefaultStyle()->getFont()->setName('微軟正黑體')->setSize(14); $objActSheet->getStyle('A1:K1')->getFont()->setBold(true)->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); $objActSheet->getStyle('A1:K1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('00D7E2F2'); ``` 5. 合併儲存格 ``` $objActSheet->mergeCells("A10:K10")->setCellValue("A10", '資料數共計'); ``` 6. 插入公式 ``` $n=$i-1; $objActSheet->setCellValue("K{$i}", "=COUNTA(E2:E{$n})"); ``` 7. 保護儲存格 ``` $objActSheet->getProtection()->setSheet(true); $objActSheet->protectCells("C{$j}", 'password'); ``` 8. 對齊方向及自動換行,對齊的值有以下這些: HORIZONTAL\_CENTER、 HORIZONTAL\_CENTER\_CONTINUOUS、 HORIZONTAL\_GENERAL、 HORIZONTAL\_JUSTIFY、 HORIZONTAL\_LEFT、 HORIZONTAL\_RIGHT、 VERTICAL\_BOTTOM、 VERTICAL\_CENTER、 VERTICAL\_JUSTIFY、 VERTICAL\_TOP ``` $objActSheet->getStyle('C')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直置中對齊 $objActSheet->getStyle('C')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平置中對齊 $objActSheet->getStyle('H')->getAlignment()->setWrapText(true); //自動換行 ``` 9. 邊框設定,getAllborders()、getTop()、getLeft()、getRight()、getBottom() 等位置,邊框的種類有:BORDER\_DASHDOT、 BORDER\_DASHDOTDOT、 BORDER\_DASHED、 BORDER\_DOTTED、 BORDER\_DOUBLE、 BORDER\_HAIR、 BORDER\_MEDIUM、 BORDER\_MEDIUMDASHDOT、 BORDER\_MEDIUMDASHDOTDOT、 BORDER\_MEDIUMDASHED、 BORDER\_NONE、 BORDER\_SLANTDASHDOT、 BORDER\_THICK、 BORDER\_THIN ``` $objActSheet->getStyle("A1:K{$j}")->getBorders()->getAllborders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setRGB('000000'); ``` 10. 把數字轉換為A、B、C欄位的方法: ``` function num2alpha($n){ for($r = ""; $n >= 0; $n = intval($n / 26) - 1) $r = chr($n%26 + 0x41) . $r; return $r; } ``` 11. 利用欄、列位置順序寫入內容: ``` $objActSheet->setCellValueByColumnAndRow($第N欄, $第N列 ,$內容); ``` ### 三、 匯入Excel 1. 匯入的基本架構 ``` include_once TADTOOLS_PATH . '/PHPExcel/IOFactory.php'; if (preg_match('/\.(xlsx)$/i', $file_name)) { $reader = PHPExcel_IOFactory::createReader('Excel2007'); } else { $reader = PHPExcel_IOFactory::createReader('Excel5'); } $PHPExcel = $reader->load($file); // 檔案名稱 $sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始) $highestRow = $sheet->getHighestRow(); // 取得總列數 ``` 2. 讀取出每一列 ``` for ($row = 1; $row <= $highestRow; $row++) { for ($col = 0; $col <= 10; $col++) { $v=$sheet->getCellByColumnAndRow($col , $row) ; //格式檢查 if( PHPExcel_Shared_Date::isDateTime( $v )){ $val = PHPExcel_Shared_Date::ExcelToPHPObject( $v->getValue())->format('Y-m-d'); }else{ $val = $v->getCalculatedValue(); } if(!get_magic_quotes_runtime()) { $data[$col]=addSlashes($val); } } $sql = "insert into … 略 … values('{$v[0]}' , '{$v[1]}' …)"; $xoopsDB->queryF($sql); } ```
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
50
人線上 (
13
人在瀏覽
線上書籍
)
會員: 0
訪客: 50
更多…