最近用到kuaidi100的端口服力, 但下載到對方的快遞公司代碼, 全是word文檔的, 需要存儲到數(shù)據(jù)庫里, 有好幾百條, 一條條添加太耗時了, 于是決定把word文檔拷貝到excel里,然后直接導入到數(shù)據(jù)庫中, 用到了phpexcel類[具體什么東東, 不知道的coder去百度科普一下], 為了方便有需要的coder使用, 這里粘貼下使用方法
1. 下載并安裝phpexcel
composer require phpoffice/phpexcel
2. 將excel文件放到目錄下, 我這里放到了 根目錄下的 extend下, 文件名為 kuaidi.xls
3. 加載文件, 生成讀取對象, 讀取excel并導入到數(shù)據(jù)庫
namespace app\controller;
use think\Controller;
use think\Db;
class Excel extends Controller{
public function index(){
//$excel = new \PHPExcel();
$filepath = EXTEND_PATH."kuaidi.xls"; //定義文件的實際目錄
$PHPReader = new \PHPExcel_Reader_Excel2007();
//生成讀取excel的對象, 注意這里new時, 要 加 \ , 否則會找不到類的
if( ! $PHPReader->canRead($filepath))
{
$PHPReader = new \PHPExcel_Reader_Excel5();
if( ! $PHPReader->canRead($filepath)){
echo 'no Excel';
return ;
}
}
$PHPExcel = $PHPReader->load($filepath); //加載要導入的excel文件
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得總行數(shù)
//$highestColumm = $sheet->getHighestColumn(); // 取得總列數(shù)
/** 循環(huán)讀取每個單元格的數(shù)據(jù) */
for ($row = 1; $row <= $highestRow; $row++){//行數(shù)是以第1行開始
$codes = $sheet->getCell("A".$row)->getValue();
$names = $sheet->getCell("B".$row)->getValue();
$data=["codes"=>$codes,"names"=>$names];
Db::name('kuaidi')->insert($data);
}
}
}
