:::

7-2-1 CSV 匯出及轉碼

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. 同HTML,將 mime-type 改為 text/csv 即可。
  2. Excel 不支援直接開啟 UTF-8 編碼的 CSV(LibreOffice 、 OpenOffice 的 Calc 可以),故內容需用 iconv() 或 mb_convert_encoding() 轉為 Big5。
  3. Excel 的 CSV 格式通常用小寫「,」隔開;而 Calc 預設用「;」隔開,且遇到文字需用雙引號"包起來。
  4. 編輯 templates\op_tad_signup_actions_show.tpl 加入匯出按鈕
    <a href="<{$xoops_url}>/modules/tad_signup/csv.php?id=<{$id}>" class="btn btn-primary"><i class="fa fa-file-text-o" aria-hidden="true"></i> 匯出CSV</a>

     

  5. 建立 csv.php,先建一個匯入範例檔(就是只有標題沒有內容的檔案):
    <?php
    use Xmf\Request;
    use XoopsModules\Tad_signup\Tad_signup_actions;
    
    require_once __DIR__ . '/header.php';
    
    if (!$_SESSION['can_add']) {
        redirect_header($_SERVER['PHP_SELF'], 3, "您沒有權限使用此功能");
    }
    
    $id = Request::getInt('id');
    $action = Tad_signup_actions::get($id);
    
    if ($action['uid'] != $xoopsUser->uid()) {
        redirect_header($_SERVER['PHP_SELF'], 3, "您沒有權限使用此功能");
    }
    
    $csv = [];
    
    $head_row = explode("\n", $action['setup']);
    $head = [];
    foreach ($head_row as $head_data) {
        $cols = explode(',', $head_data);
        if (strpos($cols[0], '#') === false) {
            $head[] = str_replace('*', '', trim($cols[0]));
        }
    }
    $head[] = '錄取';
    $head[] = '報名日期';
    $head[] = '身份';
    
    $csv[] = implode(',', $head);
    
    $content = implode("\n", $csv);
    $content = mb_convert_encoding($content, 'Big5');
    
    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename= {$action['title']}報名名單.csv");
    echo $content;
    exit;
    

     

新版提醒:取得標題部份
$head_row = explode("\n", $action['setup']);
$head = [];
foreach ($head_row as $head_data) {
    $cols = explode(',', $head_data);
    if (strpos($cols[0], '#') === false) {
        $head[] = str_replace('*', '', trim($cols[0]));
    }
}

可以改用下列方式更簡單喔:
$TadDataCenter = new TadDataCenter('tad_signup');
$head = $TadDataCenter->getAllColItems($action['setup']);

tadtools/class/TadDataCenter.php 必須是 2021/10/29 日以後的版本,可至此下載覆蓋

link to https://github.com/tadlearn/tad_signup/commit/1511364b797f1a615f849316ed26b345a1bd4e8c \


:::

搜尋

QR Code 區塊

https%3A%2F%2Fmail.tad0616.cp27.secserverpros.com%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1746%26tbsn%3D48

書籍目錄

展開 | 闔起

線上使用者

354人線上 (149人在瀏覽線上書籍)

會員: 0

訪客: 354

更多…