⑴ php中如何将execl的数据导入到数据库中
1.使用PHP
Excel
Parser
Pro软件,但是这个软件为收费软件;
2.可将EXCEL表保存为CSV格式,然后通过
phpmyadmin
或者SQLyog导入,SQLyog导入的方法为:
·将EXCEL表另存为CSV形式;
·打开SQLyog,对要导入的表格
右击
,点击“导入”-“导入使用加载本地CSV数据”;
·在弹出的对话框中,点击“改变..”,把选择“填写excel友好值”,点击确定;
·在“从文件导入”中选择要导入的CSV文件路径,点击“导入”即可导入数据到表上;
3.一个比较笨的手工方法,就是先利用excel生成
sql语句
,然后再到mysql中运行,这种方法适用于
excel表格
导入到各类
sql数据库
:
·假设你的表格有A、B、C三
列数据
,希望导入到你的数据库中表格tablename,对应的字段分别是col1、col2、col3
·在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:
1)增加一列(假设是D列)
2)在第一行的D列,就是D1中输入公式:
=CONCATENATE("insert
into
tablename
(col1,col2,col3)
values
(",A1,",",B1,",",C1,");")
3)此时D1已经生成了如下的sql语句:
insert
into
table
(col1,col2,col3)
values
('a','11','33');
4)将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦)
5)此时D列已经生成了所有的sql语句
6)把D列复制到一个纯文本文件中,假设为sql.txt
·把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。
⑵ php怎么导入大量数据的excel
php导出大量数据的Excel:
PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题
Excel可以支持100万行记录,Excel 2003最大支持65536行,从2007版开始支持104万行了,目前2007的盗版应该比较普及了-_-! 问清楚客户是什么版本。
要导出excel的理由是非常充分和正确的,应该继续坚持。业务人员最熟悉的就是Excel,实在不熟悉现学现用也比别的快。只是要注意,当数据量达到10万行这个级别时,Excel的公式填充将会非常非常慢,如果再有LOOKUP()公式,基本上十分钟内处理CPU满载进程管理器杀不掉的状态,这时候其实xampp + phpmyadmin是一个易用性和性能都最平衡的选择
PHPExcel输出的是Excel XML格式,有个XML头和尾,中间是数据Body,需要将100万行都赋值给一个数组才可以调用PHPExcel->write(),这容易导致PHP执行超时或者内存超限,不妨调整一下php.ini配置,把超时时间和内存限制都改到很大
如果是输出csv格式,那就太简单了,你的问题可能是没给字段内容加引号,加上引号再调用fputcsv试试?其实fputcsv做的事情特别简单,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents写入
⑶ php怎么导入Excel表格到数据库,根据表格内的字段修改对应数据,请问大神怎么导入数据库
这种直接使用数据库管理工具导入。
⑷ 如何用php 制作导入excel
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。 1. 以.csv格式读取 将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。
⑸ PHP网页怎么导入Excel的数据
参考代码如下:
<?php
// 1.引用ExcelReader类文件
require_once 'Excel/reader.php';
// 2.实例化读取Excel的类
$data = new Spreadsheet_Excel_Reader();
// 3.设置输出编码
$data->setOutputEncoding('utf-8');
// 4.读取指定的excel
$data->read('test.xls');
// 5.循环输出每一行数据,这里读取的是Excel的第一个Sheet表格
// sheets[0]['numRows']代表行数
// sheets[0]['numCols']代表列数
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { // 遍历行
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { // 遍历列
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "\n";
}
?>
⑹ PHP如何导入导出Excel
最近在PHP培训学习过程中,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。虽然我们在平时用的也有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了。但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了。
基本上导出的文件分为两种:
1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。优点:简单。缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。
如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr = mb_convert_encoding(”gb2312″, “UTF-8″, $yourStr);
下面详细列举几种方法。
1:利用smarty,生成符合Excel规范的XML或HTML文件支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。详细内容请见rardge大侠的帖子:http://bbs.chinaunix.net/viewthread.php?tid=745757
需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5″ ss:ExpandedRowCount=”21″”之类的东西删掉。
2、利用pack函数打印出模拟Excel格式的断句符号,这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。缺点是无格式。
PHP代码<?php // Send Header header(”Pragma: public”); header(”Expires: 0″); header(”Cache-Control: must-revalidate, post-check=0, pre-check=0″); header(”Content-Type: application/force-download”); header(”Content-Type: application/octet-stream”); header(”Content-Type: application/download”);; header(”Content-Disposition: attachment;filename=test.xls “); header(”Content-Transfer-Encoding: binary “); // XLS Data Cell xlsBOF(); xlsWriteLabel(1,0,”My excel line one”); xlsWriteLabel(2,0,”My excel line two : “); xlsWriteLabel(2,1,”Hello everybody”); xlsEOF(); function xlsBOF() { echo pack(”ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0); return; } function xlsEOF() { echo pack(”ss”, 0×0A, 0×00); return; } function xlsWriteNumber($Row, $Col, $Value) { echo pack(”sssss”, 0×203, 14, $Row, $Col, 0×0); echo pack(”d”, $Value); return; } function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack(”ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L); echo $Value; return; } ?> 不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。
3、使用制表符、换行符的方法 制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行。 <?php header(”Content-Type: application/vnd.ms-execl”); header(”Content-Disposition: attachment; filename=myExcel.xls”); header(”Pragma: no-cache”); header(”Expires: 0″); /*first line*/ echo “hello”.”\t”; echo “world”.”\t”; echo “\t\n”; /*start of second line*/ echo “this is second line”.”\t”; echo “Hi,pretty girl”.”\t”; echo “\t\n”;
⑺ 怎么使用php把表格中的数据导入到excel中
下面是我写的一个PHP导出数据到CSV问价的函数,你到时候直接调用就行了
/**
*导出CSV文件
*@paramstring$fileName 文件名字
*@paramstring|array$data导出数据,csv格式的字符串|数值数组
*@paramstring$to_encoding目标转换编码
*@paramstring$from_encoding当前编码
*/
functionexportCSV($fileName='',$data='',$to_encoding='gb2312',$from_encoding='utf-8'){
$fileName=empty($fileName)?date('YmdHis'):$fileName;
//文件标签
Header("Content-type:application/octet-stream");
header("Content-type:application/vnd.ms-excel;charset=$from_encoding");
Header("Content-Disposition:attachment;filename=$fileName.csv");
$str='';
if($data){
if(is_array($data)){
foreach($dataas$v){
if(is_array($v)){
foreach($vas$vo){
$str.=(is_numeric($vo)?"'".$vo:$vo."").",";
}
$str=trim($str,",")." ";
}else{
$str.=(is_numeric($v)?"'".$v:$v).",";
}
}
$str=trim($str,",")." ";
}else{
$str=$data;
}
}
echomb_convert_encoding($str,"gb2312","utf-8");
exit;
}
⑻ thinkphp 怎么把数据库导入excel
本文实例讲述了thinkPHP实现将excel导入到数据库中的方法。分享给大家供大家参考,具体如下: PHPExcel插件可点击此处本站下载。 这里使用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面 下面是前端页面 提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由于excel的文件后缀可能不同,我的文件后缀是xlsx,然后给把他另存为了xls的文件,就可以了 <html> <head> </head> <body> <form action="{pigcms::U('Jdb/abcdefgwulisuibian')}" method="post" enctype="multipart/form-data"> <input type="file" name="import"/> <input type="hidden" name="table" value="tablename"/> <input type="submit" value="导入"/> </form> </body> </html> 下面是php的 function abcdefgwulisuibianuplod(){ $this->display();//显示页面 } function abcdefgwulisuibian(){ if (!empty($_FILES)) { import("@.ORG.UploadFile"); $config=array( 'allowExts'=>array('xlsx','xls'), 'savePath'=>'./Public/upload/', 'saveRule'=>'time', ); $upload = new UploadFile($config); if (!$upload->upload()) { $this->error($upload->getErrorMsg()); } else { $info = $upload->getUploadFileInfo(); } vendor("PHPExcel.PHPExcel"); $file_name=$info[0]['savepath'].$info[0]['savename']; $objReader = PHPExcel_IOFactory::createReader('Excel5'); $objPHPExcel = $objReader->load($file_name,$encode='utf-8'); $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 for($i=2;$i<=$highestRow;$i++)//这个地方根据需要,一般第一行是名称,所以从第二行开始循环,也可以从第一行开始 { $data['lianjieid'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//数据库字段和excel列相对应 $data['yaoqingma'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue(); $data['dlmima']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue(); $data['ljdi']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue(); M('jdb')->add($data);//插入数据库 } $this->success('导入成功!'); }else { $this->error("请选择上传的文件"); } } 更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。 希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
⑼ 如何利用ThinkPHP框架实现Excel数据导入和导出
首先,将PHPExcel文件放入到vendor目录下面:
备注:ThinkPHP3.1的路径是:./ThinkPHP/Extend/Vendor/;ThinkPHP3.2的路径是:./ThinkPHP/Library/Vendor/;
数据导出功能的实现:
编写导出为Excel的函数exportExcel:
public function exportExcel($expTitle,$expCellName,$expTableData){
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
$fileName = $_SESSION['account'].date('_YmdHis');//文件输出的文件名
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new PHPExcel();//ThinkPHP3.1的写法
$objPHPExcel = new \PHPExcel();//ThinkPHP3.2的写法,有命名空间的概念
$cellName =
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
//
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',
$expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),
$expTableData[$i][$expCellName[$j][0]]);
}
}
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.1的写法
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.2的写法,有命名空间的概念
$objWriter->save('php://output');
exit;
}
3.读取数据,调用数据调用数据导出函数exportExcel:
function expUser(){//导出Excel
$xlsName = "User";
$xlsCell = array( //设置字段名和列名的映射
array('id','账号序列'),
array('truename','名字'),
array('sex','性别'),
array('res_id','院系'),
array('sp_id','专业'),
array('class','班级'),
array('year','毕业时间'),
array('city','所在地'),
array('company','单位'),
array('cheng','职称'),
array('wu','职务'),
array('jibie','级别'),
array('tel','电话'),
array('qq','qq'),
array('email','邮箱'),
array('honor','荣誉'),
array('remark','备注')
);
$xlsModel = M('Member');
$xlsData =
$xlsModel->Field('id,truename,sex,res_id,sp_id,class,year,city,company,cheng,wu,jibie,tel,qq,email,honor,remark')->select();
//将sex字段中1和0分贝装换为“男”和“女”
foreach ($xlsData as $k => $v)
{
$xlsData[$k]['sex']=$v['sex']==1?'男':'女';
}
$this->exportExcel($xlsName,$xlsCell,$xlsData);
}
⑽ php导入excel 怎么获取excel表格数据
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。
1. 以.csv格式读取
将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。
优点:跨平台,效率比较高、可以读写。
缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。
PHP有自带的分析.csv函数:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。
enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。
当然也可以自己手动分析字符串。
还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。
2. ODBC链接数据源
优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。
缺点:值支持windows服务器
3. PHP自定义类
优点:跨平台。某些类支持写操作。支持.xls二进制文件
常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。
不过我下载回来的 (版本 2009-03-30),有两点要注意:
reader.php 中的下面这行要修改
将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;
改为 require_once ‘oleread.inc’;
example.php 中
修改 $data->setOutputEncoding(’CP1251′);
为 $data->setOutputEncoding(’CP936′);
example2.php 中
修改 nl2br(htmlentities($data->sheets[$sheet]['