php编辑excel
㈠ 基于php中使用excel的简单介绍
在工作中需要处理多语言的翻译问题,翻译都是写在excel表格里面。为了处理方便我就保留中文和英文两列。
这样需要将这些数据从excel中取出来,然乎保存在excel的数组中,通过使用循环数组将相应的数据放入到数据库中。
所以工作的第一步就是要将数据从excel中取出来。这里我使用到了一个开源php处理excel类:phpexcel.
该项目的详细信息
http://phpexcel.codeplex.com/
。
我目前使用的是phpexcel1.7.3版本,
解压缩后里面有一个PHPExcel和PHPExcel.php文件。
我们主要使用那个PHP文件。见下图文件目录结构
这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持。于是乎我就将它转化为2003。感觉支持地很好。
下面介绍一下具体的使用:
复制代码
代码如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$php_excel_obj
=
new
PHPExcel();
$php_reader
=
newPHPExcel_Reader_Excel2007();
if(!$php_reader->canRead($file_name)){
$php_reader=
new
PHPExcel_Reader_Excel5();
if(!$php_reader->canRead($file_name)){
echo'NO
Excel!'
}
}
$php_excel_obj
=
$php_reader->load($file_name);
$current_sheet
=$php_excel_obj->getSheet(0);
上面的主要功能是初始化相关的excel类,并装载excel第一个sheet
复制代码
代码如下:
$all_column
=$current_sheet->getHighestColumn();
$all_row
=$current_sheet->getHighestRow();
以上分别获得该表格的最大列值(字母表示如:‘G'),和最大的行数(数值表示)
下面将使用循环来讲excel里面的数据读到excel中:
复制代码
代码如下:
$all_arr
=
array();
$c_arr
=
array();
//字符对照表
for($r_i
=
1;
$r_i<=$all_row;
$r_i++){
$c_arr=
array();
for($c_i=
'A'
$c_i<=
'B'
$c_i++){
$adr=
$c_i
.
$r_i;
$value=
$current_sheet->getCell($adr)->getValue();
if($c_i==
'A'
&&
empty($value)
)
break;
if(is_object($value))
$value=
$value->__toString();
$c_arr[$c_i]=
$value;
}
$c_arr&&
$all_arr[]
=
$c_arr;
}
下面简单地介绍一下phpexcel的写操作,这个操作经常用于将数据库中的数据导入到excel中,便于展示和做成更美观的效果。
复制代码
代码如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$excel_obj
=
new
PHPExcel();
$objWriter
=
newPHPExcel_Writer_Excel5($excel_obj);
$excel_obj->setActiveSheetIndex(0);
$act_sheet_obj=$excel_obj->getActiveSheet();
$act_sheet_obj->setTitle('sheet');
$act_sheet_obj->setCellValue('A1',
'字符串内容');
$act_sheet_obj->setCellValue('A2',
26);
$file_name
=
"output.xls";
$objWriter->save($file_name);
代码很简单,
首先初始化相关的excel写类,然后写入数据,最后保存为xls文件。
输出的效果见图
㈡ 我改的一个对表格操作的php。原来是点击可以编辑表格,我想改为点击就删除该行,以及数据库。
$(function(){
$("tr:even").css("background-color","#ffff99");
$("trtd:not(.id)").click(function(){
//获取tr
var$tr=$(this).parent();
varid=$tr.find('td:first-child').text();
//把id发送到服务器
$.post("delete.php",{
id:id
},function(data){
//服务器返回成功之后删除tr
$tr.remove();
alert('删除成功');
});
});
});
㈢ 在PHP中操作Excel实例代码
复制代码
代码如下:
<?php
//指定页面编码,防止出现中文乱码的情形
header('Content-type:
text/html;
charset=gb2312');
//启动Excel
$ms_excel=new
COM("excel.application")
or
die("不能打开Excel应用程序");
//在网页中显示当前的Excel版本
echo
"Excel版本:{$ms_excel->Version}\n";
//新建一个工作簿
$ms_excel->Application->Workbooks->Add()
or
die("不能添加新工作簿");
//在工作簿的工作表Sheet1中单元格A1中输入文本
$ms_excel->Worksheets("Sheet1")->Range("A1")->Value="测试";
//保存工作簿,如果没有指定路径,则默认保存在我的文档中
$ms_excel->Workbooks(1)->SaveAs("php_excel_test.xls");
//关闭工作簿
$ms_excel->Quit();
//清空对象
$ms_excel=null;
?>
在htdocs文件夹中将该文件保存为“excelsample.php”。打开浏览器,在地址栏中输入:
http://localhost/excelsample.php
此时,将会在页面中显示当前的Excel版本,同时创建名为php_excel_test.xls的工作簿并在工作表Sheet1单元格A1中输入“测试”。
打开工作簿php_excel_test.xls,在单元格A1中将会看到已经输入了“测试”。
注:为防止出现乱码,在代码开始设置了编码格式,同时在保存文件时选择保存为gb2312格式。
㈣ php读取excel文件示例分享(更新修改excel)
复制代码
代码如下:
//模板存放目录
$dir
=
$DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';
$templateName
=
'1.xlsx';
$outputFileName
=
'模板.xlsx';
$txt='test';
//实例化Excel读取类
$PHPReader
=
new
PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($dir.$templateName)){
$PHPReader
=
new
PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($dir.$templateName)){
echo
'无法识别的Excel文件!';
return
false;
}
}
//读取Excel
$PHPExcel
=
$PHPReader->load($dir.$templateName);
//读取工作表1
$currentSheet
=
$PHPExcel->getSheet(0);
$currentSheet->setCellValue('B13',iconv('gbk','utf-8',$txt));//表头赋值//
//实例化Excel写入类
$PHPWriter
=
new
PHPExcel_Writer_Excel2007($PHPExcel);
ob_start();
header("Content-Type:
application/force-download");
header("Content-Type:
application/octet-stream");
header("Content-Type:
application/download");
header('Content-Disposition:attachment;filename="'
.$outputFileName.
'"');//输出模板名称
header("Content-Transfer-Encoding:
binary");
header("Last-Modified:".gmdate("D,
d
M
Y
H:i:s")."
GMT");
header('Pragma:
public');
header('Expires:
30');
header('Cache-Control:
public');
$PHPWriter->save('php://output');
㈤ 高分求指导PHPExcel 修改已经存在的excel文档中某个sheet中的内容。急!!!
经查阅资料,phpexcel类貌似并不能直接进行excel文档的编辑(就是打开文档进行读写),而是分成两个部分:读或写。我的建议有两点:
1. 如果使用PHPExcel类,那么可以考虑的方法:
先用 PhpExcel 建立reader,再load文件,这样打开已经存在的文档,然后再建立writer,将reader中的数据都复制过来,再用 PhpExcel 进行数据修改,再以load的文件名覆盖保存。
2. 如果可以使用COM,则可以直接用COM进行操作。
㈥ PHPEXCEL写入即有的EXCEL
$objPHPExcel->setActiveSheetIndex($i)
->setCellValue('A1','时间')
->setCellValue('B1','带宽峰值Mbps');
$time=substr($value["sd_datetime"],4,2).'-'.substr($value["sd_datetime"],6,2).''.substr($value["sd_datetime"],8,2).':'.substr($value["sd_datetime"],10);
$objPHPExcel->setActiveSheetIndex($i)->setCellValue('A'.$j,$time);
$objPHPExcel->setActiveSheetIndex($i)->setCellValue('B'.$j,$value["bw"]/1000);
从第三行开始,那就是是从A3开始,把i初始化为A,使用phpexcel的setCellValue函数来填充数据,然后根据数据条数来每次递加,直到装满数据为止;数据装完之后想提供给客户下载,那就用header函数就好了,文件名由你来定
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$outputFileName.'"');
header('Cache-Control:max-age=0');
//Ifyou'reservingtoIE9,thenthefollowingmaybeneeded
header('Cache-Control:max-age=1');
//Ifyou'reservingtoIEoverSSL,thenthefollowingmaybeneeded
header('Expires:Mon,26Jul199705:00:00GMT');//Dateinthepast
header('Last-Modified:'.gmdate('D,dMYH:i:s').'GMT');//alwaysmodified
header('Cache-Control:cache,must-revalidate');//HTTP/1.1
header('Pragma:public');//HTTP/1.0
$objWriter=IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');
大概思路是这样,具体实现你要根据自己的业务需求来修改
㈦ 怎么用PHPexcel选定指定的excel并修改里面的某个sheet
步骤1、在左下角的任一工作表标签上,单击鼠标右键,选择“选定全部工作表”,将所有工作表处于组合状态;
步骤2、在任一工作表的A1进行字号的修改或编辑,该操作将同步到所有表格的A1单元格;
步骤3、完成操作后,在左下角的工作表标签位置,单击鼠标右键,“取消组合工作表”,退出组合工作表状态,避免在任一工作表的独立操作同步到其他所有工作表。
㈧ 是否有开源免费的php等支持在线编辑excel的程序
开源的不清楚,商业控件可以用SpreadJS,纯前端的控件,无关服务端语言,这样PHP也可以使用。
㈨ PHPEXCEL怎么使用
步骤一、鼠标点选到C1的单元格中,然后输入公式“=A1*B1”; 步骤二、此时,从第二排单元格中开始输入你需要求积的数字; 步骤三、好了,最关键的时刻就在这里了。我们将鼠标选中“C1”,然后当光标变成十字架形状的时候一直网下拉,放开鼠标,你就会发现,所有自动求积的计算就都已经完成了!
㈩ php后台要有一个编辑器,编辑器要像Excel差不多
搜在线编辑,有很多。php中常用的是fckeditor(最新版叫ckeditor),另外还有ewebeditor(这个功能很强大)、xhEditor等