excel表格生成與匯入
1、生成excel表格
<?php
header(“content-type:text/html;charset=utf-8”);
$dsn = “mysql:dbname=news;host=127.0.0.1”;
$user = “root”;
$pwd = “”;
$pdo = new PDO($dsn,$user,$pwd);
//$sql = “select id,name.content,descs from brand”;
$res = $pdo->query(“select id,name,content,descs from brand”);
$arr = $res->fetchAll(PDO::FETCH_ASSOC);
//$res = $pdo->exec(“select id,name,content,descs from brand”);
//$data = $res->execute();
//$arr = $res->fetchAll(PDO::FETCH_ASSOC);
//print_r($arr);die;
//引入類檔案
require_once `./Classes/PHPExcel.php`;
require_once `./Classes/PHPExcel/IOFactory.php`;
require_once `./Classes/PHPExcel/Reader/Excel5.php`;
//建立新的PHPExcel物件
$objPHPExcel = new PHPExcel();
$objProps = $objPHPExcel->getProperties();
//設定表頭
//ord():ord() 函式返回字串第一個字元的 ASCII 值。 語法 ord(string) 引數描述 string 必需。要從中獲得 ASCII 值的字串
$i = 0;
foreach($arr as $k=>$v){
//print_r($v);die;
if($i<1){
$obj=array_keys($v);//array_keys() 函式返回包含陣列中所有鍵名的一個新陣列
//print_r($obj);die;
$key = ord(“A”);
//print_r($key);die;
foreach($obj as $ke=>$va){
//print_r($va);die;
$colum = chr($key);//輸出excel表格中的行的(ABCD….),如果顯示B,則迴圈$key+1,
//print_r($colum);//獲取excel表格中的行的ABCD
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.`1`, $va);//setCellValue()單元格賦值;
$key+=1;
}
}
$i++;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
//print_r($objActSheet);die;
foreach($arr as $key => $rows){ //行寫入
//print_r($rows);die;
$span = ord(“A”);
foreach($rows as $keyName=>$value){// 列寫入
//print_r($value);die;//獲取本條資料的id
$h = chr($span);
//print_r($h);die;
$objActSheet->setCellValue($h.$column, $value);
$span++;
}
$column++;
}
//生成excel檔案
//$fileName=”excel.xls”;
$fileName = iconv(“utf-8”, “gb2312”, “shengcheng.xls”);
//重新命名錶
$objPHPExcel->getActiveSheet()->setTitle(`Simple`);
//設定活動單指數到第一個表,所以Excel開啟這是第一個表
$objPHPExcel->setActiveSheetIndex(0);
//將輸出重定向到一個客戶端web瀏覽器(Excel2007)
header(`Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`);
header(“Content-Disposition: attachment; filename=”$fileName””);
header(`Cache-Control: max-age=0`);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, `Excel2007`);
$objWriter->save(`php://output`); //檔案通過瀏覽器下載
exit;
?>
2、將生成的execl表格的資料入庫
2.1、首先寫一個form表單
<META NAME=”” CONTENT=”” charset=”utf-8″>
<form name=”frm1″ enctype=”multipart/form-data” action=”daoru.php” method=”post”>
<input name=”filename” type=”file” /><input name=”submit” type=”submit” value=”上傳” />
</form>
2.2、通過form 表單跳到指定的目錄
<?php
header(“content-type:text/html;charset=utf-8”);
session_start();
//全域性變數
$succ_result=0;
$error_result=0;
$file=$_FILES[`filename`];
$max_size=”2000000″; //最大檔案限制(單位:byte)
$fname=$file[`name`];
$ftype=strtolower(substr(strrchr($fname,`.`),1));
//檔案格式
$uploadfile=$file[`tmp_name`];
if($_SERVER[`REQUEST_METHOD`]==`POST`){
if(is_uploaded_file($uploadfile)){
if($file[`size`]>$max_size){
echo “Import file is too large”;
exit;
}
if($ftype!=`xls`){
echo “Import file type is error”;
exit;
}
}else{
echo “The file is not empty!”;
exit;
}
}
//連線mysql資料庫
$dsn = “mysql:dbname=news;host=127.0.0.1”;
$user = “root”;
$pwd = “”;
$pdo = new PDO($dsn,$user,$pwd);
//呼叫phpexcel類庫
/*
require_once `phpexcel.php`;
require_once `PHPExcelIOFactory.php`;
require_once `PHPExcelReaderExcel5.php`;
*/
//引入類檔案
require_once `./Classes/PHPExcel.php`;
require_once `./Classes/PHPExcel/IOFactory.php`;
require_once `./Classes/PHPExcel/Reader/Excel5.php`;
$objReader = PHPExcel_IOFactory::createReader(`Excel2007`);//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($uploadfile);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumn = $sheet->getHighestColumn(); // 取得總列數
$arr_result=array();
$strs=array();
for($j=2;$j<=$highestRow;$j++)
{
unset($arr_result);
unset($strs);
for($k=`A`;$k<= $highestColumn;$k++)
{
//讀取單元格
@$arr_result .= $objPHPExcel->getActiveSheet()->getCell(“$k$j”)->getValue().`,`;
}
$strs=explode(“,”,$arr_result);
$sql=”insert into brand(id,name,content,descs) values ($strs[0],`$strs[1]`,`$strs[2]`,`$strs[3]`)”;
echo $sql.”<br/>”;
// mysql_query(“set names utf8”);
$result=$pdo->exec($sql) or die(“執行錯誤”);
// $insert_num=mysql_affected_rows();
if($result>0){
$succ_result+=1;
}else{
$error_result+=1;
}
}
echo “插入成功”.$succ_result.”條資料!!!<br>”;
echo “插入失敗”.$error_result.”條資料!!!”;
?>
本文轉自噼裡啪啦啦 51CTO部落格,原文連結:http://blog.51cto.com/pilipala/1639873,如需轉載請自行聯絡原作者
相關文章
- java 匯入到EXCEL表格JavaExcel
- vue + element + 匯入、匯出excel表格VueExcel
- Element-ui,Vue表格匯出生成Excel表UIVueExcel
- EasyPoi框架實現Excel表格匯入框架Excel
- excel表格匯入word方法彙總Excel
- 將excel表格匯入資料庫Excel資料庫
- 使用SqlBulkCopy類實現匯入excel表格SQLExcel
- Angular Excel 匯入與匯出AngularExcel
- js匯出Excel表格JSExcel
- vue匯出Excel表格VueExcel
- 如何將excel表格匯入word並保持格式不變 如何把excel的表格弄到word文件Excel
- 將表格資料匯入Excel表程式碼例項Excel
- element-UI庫Table表格匯出Excel表格UIExcel
- vue+elementUI表格匯出excelVueUIExcel
- vue將表格匯出為excelVueExcel
- Vue實現匯出excel表格VueExcel
- 資料匯出為excel表格Excel
- excel的匯入與匯出---通用版Excel
- 騰訊文件怎樣匯出excel表格 騰訊文件如何匯出excelExcel
- Element-ui元件庫Table表格匯出Excel表格UI元件Excel
- java怎麼將excel表格資料匯入資料庫JavaExcel資料庫
- vue匯出excel資料表格功能VueExcel
- vue實現前端匯出excel表格Vue前端Excel
- springboot poi匯出excel表格Spring BootExcel
- 前端常用方法之匯出excel表格前端Excel
- PHP匯出大量資料到excel表格PHPExcel
- 生成表格與合併表格
- EXCEL表格匯入訂單資料 go怎麼接收處理?ExcelGo
- vue excel匯入匯出VueExcel
- excel匯入工具Excel
- Vue匯出資料到Excel電子表格VueExcel
- vue2.0 匯出Excel表格資料VueExcel
- SpringBoot+Vue之表格的CRUD與匯入匯出Spring BootVue
- 使用 EPPlus 封裝的 excel 表格匯入功能 (.net core c#)封裝ExcelC#
- Python匯入Excel表格資料並以字典dict格式儲存PythonExcel
- Excel表格匯入Coreldraw地辦法和處理靈活技術Excel
- 將table表格內容匯入到word或者Excel程式碼例項Excel
- Excel匯入匯出神器(Java)ExcelJava