phpexcel导入导出(轻量) 淘宝导入
excel单元格数字变成字符串方法 '1001010002400000,数值前加单引号
当excel文件中的数据设置过,导入的数据和excel显示的不同,单个修改数据个单元格格式又很麻烦,这时把excel另存为csv格式即可,用文本方式打开看数据
导入$data->sheets
使用PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader
- <?php
- //$data_header_var = array(1=>'$incrementId',2=>'$price');
- function Excel2Db($fileName, $data_header_var=array()){
- require_once 'Excel/reader.php';
- $data = new Spreadsheet_Excel_Reader();
- $data->setOutputEncoding('utf-8'); //gbk
- $data->read($fileName);
- $numRows = $data->sheets["0"]['numRows'];
- for ($i = 2; $i <= $numRows; $i++) {
- foreach ($data_header_var as $j => $var){
- eval($var.'= $data->sheets["0"]["cells"][$i][$j];');
- }
- //save2Db
- }
- }
- /*$data2 = $data->sheets["0"]["cells"];
- unset($data2['1']);
- foreach ($data2 as $i=> $v) {
- foreach ($data_header_var as $j => $var){
- eval($var.'= $v[$j];');
- }*/
- function Excel2Array($fileName, $data_header_var=array()){
- require_once 'Excel/reader.php';
- $data = new Spreadsheet_Excel_Reader();
- $data->setOutputEncoding('utf-8'); //gbk
- $data->read($fileName);
- $dataRows = $lineData = array();
- $numRows = $data->sheets["0"]['numRows'];
- for ($i = 2; $i <= $numRows; $i++) {
- foreach ($data_header_var as $j => $var){
- $lineData[$var] = $data->sheets["0"]["cells"][$i][$j];
- }
- $dataRows[] = $lineData;
- }
- return $dataRows;
- }
- <?php
- /*$excel = new Excel();
- //$excel->setEncode("utf-8","gb2312"); //设置编码
- $titleData = array("name","price","content","total");//设置标题栏
- $data = array(
- array("ab","ac","ad","ae"),
- array("abc","acc","adc","aec"),
- array("abd","acd","add","aed"),
- 't'=>array("abe","ace","ade","aee"),
- );
- $excel->getExcel($titleData, $data, "demo");
- */
- class Excel {
- var $inEncode = "utf-8"; //一般是页面编码
- var $outEncode = "utf-8"; //一般是Excel文件的编码
- var $content = '';
- /**
- *设置编码
- */
- public function setEncode($incode, $outcode){
- $this->inEncode = $incode;
- $this->outEncode = $outcode;
- }
- /**
- *设置Excel的行记录
- */
- public function setRow($lineData){
- $title = "";
- foreach($lineData as $v){
- if($this->inEncode != $this->outEncode){
- $title .= iconv($this->inEncode,$this->outEncode,$v)."\t";
- }else{
- $title .= $v."\t";
- }
- }
- $title .= "\n";
- return $title;
- }
- /**
- *设置Excel内容
- */
- public function setRows($array){
- $content = "";
- foreach($array as $k => $v){
- $content .= $this->setRow($v);
- }
- return $content;
- }
- /**
- *生成并自动下载Excel
- * $titleData 标题栏数组
- * $array 内容数组
- * $filename 文件名称 (为空,已当前日期为名称)
- */
- public function getExcel($titleData, $array, $filename = ''){
- if($filename==''){
- $filename = date("Y-m-d");
- }
- $title = $this->setRow($titleData);
- $content = $this->setRows($array);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:filename=".$filename.".xls");
- echo $title;
- echo $content;
- }
- }
- public static function fopen_utf8($filename)
- {
- $encoding = '';
- $handle = fopen($filename, 'r');
- $bom = fread($handle, 2);
- rewind($handle);
- if ($bom === chr(0xff) . chr(0xfe) || $bom === chr(0xfe) . chr(0xff)) {
- // UTF16 Byte Order Mark present
- $encoding = 'UTF-16';
- } else {
- $file_sample = fread($handle, 1000) + 'e'; //read first 1000 bytes
- rewind($handle);
- $encoding = mb_detect_encoding($file_sample, 'UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP');
- }
- if ($encoding) {
- stream_filter_append($handle, 'convert.iconv.' . $encoding . '/UTF-8');
- }
- return ($handle);
- }
- //得到csv data
- public function getCsvFileData($filename)
- {
- $handle = Helper::fopen_utf8($filename, "r");
- $csvData = array();
- for ($j = 1; !feof($handle); $j++) {
- $line = fgets($handle);
- $val = explode("\t", $line);
- if ($j > 1) {
- $line = array(
- 'title' => $val[0],
- //'cate' => $val[1],
- 'price' => $val[2], //价格
- 'inventory' => trim($val [3]), //数量
- 'descript' => trim($val [4]), //描述
- 'import_images' => trim($val[5]), //图片
- 'sku' => trim($val[6]), //商家编码
- 'weight' => trim($val[7]), //重量
- );
- $csvData[] = $line;
- }
- }
- return $csvData;
- }
- //校验数据
- public function checkProductImportData($adminId, $csvData)
- {
- $checkArray = array();
- foreach ($csvData as $product) {
- $checkArray[] = $product['sku'];
- }
- $list = 'db中的sku列表在文件sku中的'
- $result = array('status' => 10000, 'msg' => '');
- if (count($list) == count($checkArray)) {
- $result['status'] = 2;
- $result['msg'] = '文件里的商品已经导入过';
- } elseif (count($list) > 0) {
- $dbhasskulist = array();
- $alllist = self::model()->findAllSkuFromDb();
- foreach ($alllist as $info) {
- if ($info->sku && in_array($info->sku, $checkArray)) {
- $dbhasskulist[] = $info->sku;
- }
- }
- $result['status'] = 1;
- $result['msg'] = "商品货号重复:" . implode(",", array_unique($dbhasskulist));
- }
- return $result;
- }
phpexcel导入导出(轻量) 淘宝导入相关推荐
- 第三方平台生成的CSV,如何导入上传到淘宝店铺
问题1:"我的需求是这样的,我是第三方平台,客户在我平台设计了商品,然后下载数据生成了CSV文件,再由CSV文件导入上传到淘宝" "我用的*手工具箱去抓取的拼多多商品,然 ...
- 数据库oracle数据导入导出命令,数据库oracle数据导入导出命令
exp Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成 ...
- mysql数据泵导入导出_ORACLE使用数据泵导入导出部分表
1.导出名字为A的表(这里会导出SEQUENCES及FUNCTION等内容) expdp TEST/TEST@orcl schemas=TEST dumpfile=TEST.dmp DIRECTORY ...
- 教你怎么淘宝导入快递单号批量发货
DUMUZ是什么? Dumuz是一款软件产品,可模拟人在电脑上的不同系统之间操作行为, 替代人在电脑前执行具有规律与重复性高的办公流程. 目前基于实际业务场景在软件搭建了部分天猫/淘宝/京东网页数据 ...
- Elasticsearch 导入导出全量数据
本文简单介绍了 如何 导入导出 ES 全量数据,暂时不包含导入导出 ES 单表数据. 工具官网:elasticsearch-dump 全量数据 导出 确保有备份工具[见附录-1 下载备份工具] 确保o ...
- mysql命令导入导出数据_mysql命令行导入和导出数据
MySQL中导出CSV格式数据的SQL语句样本如下: select * from test_info into outfile '/tmp/test.csv' fields terminated by ...
- excel winform 导入 导出_强大的 Excel 导入导出工具 hutool
" 最近项目上需要用到 Excel 的导入导出功能,想着之前使用的都有点麻烦,所以结合多方资料,终于找到了这个还算不错的 Excel 处理工具,一起来看" 今日安利好物名为 Hut ...
- 5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出
1固定集合 固定集合值得是事先创建而且大小固定的集合 2固定集合的特征:固定集合很像环形队列,如果空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说,固定集合适用于任何想要自动淘汰过期属 ...
- solr mysql增量导入_Solr全量与增量导入
Solr Full Import全量导入 所谓全量索引一般指的是每次从数据库中读取需要导入的全部数据,然后提交到Solr Server,最后删除指定core的所有索引数据进行重建.全量导入一般在数据首 ...
最新文章
- 专转本计算机应用基础,江苏省专转本计算机应用基础模拟题
- 【哲学探讨】娱乐至死
- Python的运算符与表达式
- Django从理论到实战(part5)--创建我们的第一个应用
- scss里父选择器的标识符
- [Java基础]Date类基础
- 苹果手机更改照片大小kb_苹果手机照片视频删除了怎样恢复?专业人士建议你这样做...
- python 去掉字符串第一个字符_10 个 Python 字符串处理技巧
- Android.mk小结
- 李开复:垂直搜索违背了搜索引擎的发展初衷
- Python3中Dict不能在循环中删除元素
- 区块链+高薪,你还等什么?
- 微信小程序毕业设计 基于微信景区景点旅游攻略小程序系统开题报告
- NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解
- Python数值和偏微分方程解
- [转载]关于CIPS不得不知道的14个要点
- How to Write and Publish a Scientific Paper: 7th Edition(科技论文写作与发表教程)
- 2019中国脑科学与神经调控技术发展高峰论坛
- JSon解析之JSonKit
- 《mysql是怎样运行的》读书笔记一