当前位置:首页 » 编程语言 » phpexcelsheet

phpexcelsheet

发布时间: 2022-12-10 08:24:48

Ⅰ 如何用php读取Exce表中的多个sheet

:php读取excel,excel下多个个工作表的方法: 1、利用PHPExcelReader来完成多个excel的读龋 2、PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式

Ⅱ 怎么用PHPexcel选定指定的excel并修改里面的某个sheet

步骤1、在左下角的任一工作表标签上,单击鼠标右键,选择“选定全部工作表”,将所有工作表处于组合状态;

步骤2、在任一工作表的A1进行字号的修改或编辑,该操作将同步到所有表格的A1单元格;
步骤3、完成操作后,在左下角的工作表标签位置,单击鼠标右键,“取消组合工作表”,退出组合工作表状态,避免在任一工作表的独立操作同步到其他所有工作表。

Ⅲ phpexcel怎么读取加密的excel文档

1下载 phpexcel,

2require_once '../Classes/PHPExcel/IOFactory.php'$reader =PHPExcel_IOFactory::createReader('Excel5'); // 读取 excel 文件方式 此方法是读取excel2007之前的版本 excel2007 为读取2007以后的版本 也可以ClassesPHPExcelReader 文件夹中的类(为所有读取类,需要哪个填上哪个就行)$PHPExcel = $reader->load("info.xls"); // 文件名称$sheet = $PHPExcel->getSheet(0); // 读取第一个工作表从0读起$highestRow = $sheet->getHighestRow(); // 取得总行数$highestColumn = $sheet->getHighestColumn(); // 取得总列数// 根据自己的数据表的大小修改;3$arr=array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z');// 每次读取一行,再在行中循环每列的数值for ($row = 5; $row <= $highestRow; $row++) {for ($column = 1; $arr[$column] != 'T' $column++) {$val = $sheet->getCellByColumnAndRow($column, $row)->getValue();$list[$row][] = $val;}}

print_r($list)。这个方法嘛,可能也不是任何时候都可以的,但确实是很实用的,试试之后你们会有不一样的感受的,真的是这样。

Ⅳ 如何用PHPExcel读取超大excel文件

工作中经常要遇到将xlsx文件中的部分内容导入到数据库。通常我们都是用PHPExcel来读取。
通过下面的方法我们可以很容易将一个excel表格读取成为php数组,之后就可以为所欲为了:
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);
$sheetData = $objPHPExcel->getSheet(0)->toArray(null, true, true, true);
如果文章到此结束,那价值就不大了。
很不幸的情况总是存在的,当data.xlsx有上万行,每一行又有很多列,每一列又有很长的字符串,并且有的还有颜色等效果时,用上面的方法经常发生的情况就是内存不足。
好吧,我们还有ini_set来加大内存,还可以用set_time_limit来设置较长的超时,如下:
set_time_limit(90);
ini_set("memory_limit", "1024M");
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);
$sheetData = $objPHPExcel->getSheet(0)->toArray(null, true, true, true);
但很负责任的说,这些都不是终极的方案。
我曾经试过将内存设置到了2G,超时设置到了90秒,也仍然读不出一个4000行的花花绿绿的表格。原因都出在toArray这个方法上,它会将处理的结果全保存到数组中,这种方式在处理简单表格时还是很方便的,但在处理大表格时,真的是很杯具。
我们的解决方案如下:
require 'lib/PHPExcel.php';

set_time_limit(90);
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);

// 读取规则
$sheet_read_arr = array();
$sheet_read_arr["sheet1"] = array("A","B","C","D","F");
$sheet_read_arr["sheet2"] = array("A","B","C","D","F");

// 循环所有的页
foreach ($sheet_read_arr as $key => $val)
{
$currentSheet = $objPHPExcel->getSheetByName($key);// 通过页名称取得当前页
$row_num = $currentSheet->getHighestRow();// 当前页行数

// 循环从第二行开始,第一行往往是表头
for ($i = 2; $i <</span>= $row_num; $i++)
{
$cell_values = array();
foreach ($val as $cell_val)
{
$address = $cell_val . $i;// 单元格坐标

// 读取单元格内容
$cell_values[] = $currentSheet->getCell($address)->getFormattedValue();
}

// 看看数据
print_r($cell_values);
}
}
上面的方式算是较复杂的情况了,如果只是想将所有的单元格全读出来,用下面的方法就行了:
require 'lib/PHPExcel.php';

set_time_limit(90);
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);

$sheet_count = $objPHPExcel->getSheetCount();
for ($s = 0; $s <</span> $sheet_count; $s++)
{
$currentSheet = $objPHPExcel->getSheet($s);// 当前页
$row_num = $currentSheet->getHighestRow();// 当前页行数
$col_max = $currentSheet->getHighestColumn(); // 当前页最大列号

// 循环从第二行开始,第一行往往是表头
for($i = 2; $i <</span>= $row_num; $i++)
{
$cell_values = array();
for($j = 'A'; $j <</span> $col_max; $j++)
{
$address = $j . $i; // 单元格坐标
$cell_values[] = $currentSheet->getCell($address)->getFormattedValue();
}

// 看看数据
print_r($cell_values);
}
}
我们可以将上面的print_r地方改成组拼sql语句并写入文件,然后用mysql导入,当然也可以直接连接数据库向表中插入记录,这就随意了。

Ⅳ php导出excel表格sheet的问题

到处成EXCEL 我是知道 实际上就是 用html的 table 做成了表格然后 输出保存时 保存成 a.xls 这样而已 但是里边怎么做成多个sheet我还真不知道 而且 应该是不能分成sheet
实际你根本不用分成sheet 只要把每个内容都存成一个excel 然后你在自己手动建立一个ecel然后自己在建立sheet就可以了

Ⅵ phpexcel的getSheet只能读取一页,怎么获取一个excel有多少分页

工作中经常要遇到将xlsx文件中的部分内容导入到数据库。通常我们都是用PHPExcel来读龋 通过下面的方法我们可以很容易将一个excel表格读取成为php数组,之后就可以为所欲为了: $input_file = "data.xlsx"; $objPHPExcel = PHPExcel_IOFactory

Ⅶ phpexcel 简单导出多个sheet

原文: https://blog.csdn.net/u011341352/article/details/70211962

Ⅷ 高分求指导PHPExcel 修改已经存在的excel文档中某个sheet中的内容。急!!!

经查阅资料,phpexcel类貌似并不能直接进行excel文档的编辑(就是打开文档进行读写),而是分成两个部分:读或写。我的建议有两点:

1. 如果使用PHPExcel类,那么可以考虑的方法:
先用 PhpExcel 建立reader,再load文件,这样打开已经存在的文档,然后再建立writer,将reader中的数据都复制过来,再用 PhpExcel 进行数据修改,再以load的文件名覆盖保存。

2. 如果可以使用COM,则可以直接用COM进行操作。

Ⅸ 怎么使用方法phpexcel

PHPExcel 使用方法 举例介绍
PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐。列举以记之。
view plain to clipboardprint? <?
//设置PHPExcel类库的include path set_include_path('.'. PATH_SEPARATOR .
'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR . get_include_path()); /**
* 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要
* 打开对应行的注释。
* 如果使用 Excel5 ,输出的内容应该是GBK编码。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls // or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
// 创建一个处理对象实例 $objExcel = new PHPExcel();
// 创建文件格式写入对象实例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式 // or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
//$objWriter->setOffice2003Compatibility(true);
//*************************************
//设置文档基本属性
$objProps = $objExcel->getProperties(); $objProps->setCreator("Zeal Li"); $objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document"); $objProps->setSubject("Office XLS Test Document, Demo"); $objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel"); $objProps->setCategory("Test");
//*************************************
//设置当前的sheet索引,用于后续的内容操作。
//一般只有在使用多个sheet的时候才需要显示调用。
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 $objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet();
//设置当前活动sheet的名称
$objActSheet->setTitle('测试Sheet');
//************************************* //设置单元格内容 //
//由PHPExcel根据传入内容自动判断单元格内容类型
$objActSheet->setCellValue('A1', '字符串内容'); // 字符串内容 $objActSheet->setCellValue('A2', 26); // 数值 $objActSheet->setCellValue('A3', true); // 布尔值 $objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//显式指定内容类型
$objActSheet->setCellValueExplicit('A5', '847475847857487584', PHPExcel_Cell_DataType::TYPE_STRING);
//合并单元格
$objActSheet->mergeCells('B1:C22');
//分离单元格
$objActSheet->unmergeCells('B1:C22');
//************************************* //设置单元格样式 //
//设置宽度
$objActSheet->getColumnDimension('B')->setAutoSize(true); $objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//设置单元格内容的数字格式。 //
//如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,
//这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的
//各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode
//为 FORMAT_N
//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代码:
//if($ifmt === '0') $ifmt = 1; //
//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字
//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容
//都按原始内容全部显示出来。 $objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
UMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要
//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代码:
//if($ifmt === '0') $ifmt = 1; //
//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字
//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容
//都按原始内容全部显示出来。 $objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//设置字体
$objFontA5 = $objStyleA5->getFont(); $objFontA5->setName('Courier New');
$objFontA5->setSize(10); $objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//输出内容 //
$outputFileName = "output.xls"; //到文件
////$objWriter->save($outputFileName); //or //到浏览器
////header("Content-Type: application/force-download"); ////header("Content-Type: application/octet-stream"); ////header("Content-Type: application/download");
////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
////header("Content-Transfer-Encoding: binary"); ////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache"); ////$objWriter->save('php://output'); ?>

Ⅹ phpexcel的getSheet只能读取一页,怎么获取一个excel有多少分页

一个简单的方法是你写入excel的时候在时间上加‘’,让他变成字符串,你读取就没错了
还有就是网上搜了一个excelTime的函数也可以正确转化时间

error_reporting(E_ALL);
date_default_timezone_set('Asia/shanghai');
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
$inputFileName = '6081076641077444758.xls';
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($inputFileName);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数

$tempArray = array();
for($j=2;$j<=$highestRow;$j++){
for($k='A';$k<=$highestColumn;$k++){
if($k=='M'||$k=='O') //M列和O列是时间
$tempArray[] = excelTime($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue());
else
$tempArray[] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
}
print_r($tempArray);
unset($tempArray);
}

function excelTime($date, $time = false) {
if(function_exists('GregorianToJD')){
if (is_numeric( $date )) {
$jd = GregorianToJD( 1, 1, 1970 );
$gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );
$date = explode( '/', $gregorian );
$date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )
."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )
."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )
. ($time ? " 00:00:00" : '');
return $date_str;
}
}else{
$date=$date>25568?$date+1:25569;
/*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/
$ofs=(70 * 365 + 17+2) * 86400;
$date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : '');
}
return $date;
}

热点内容
把我的世界的ice服务器炸了 发布:2025-01-21 09:31:01 浏览:681
sql数据库导入数据 发布:2025-01-21 09:25:21 浏览:420
zynqsdk修改编译选项 发布:2025-01-21 09:22:30 浏览:875
存储器部件教学实验 发布:2025-01-21 09:14:06 浏览:179
php安装memcached扩展 发布:2025-01-21 09:07:06 浏览:546
手机缓存视频到电脑上 发布:2025-01-21 09:07:02 浏览:978
如果知道服务器ip有什么风险 发布:2025-01-21 09:06:58 浏览:525
在压缩曲线 发布:2025-01-21 09:05:31 浏览:909
华山算法 发布:2025-01-21 08:44:48 浏览:367
如何在微信上再设置一个密码 发布:2025-01-21 08:44:39 浏览:731