Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站导航为爱好php程序的朋友们提供php相关的教程知识。

PhP程序Excel如何读取超大excel文件,有需要的朋友可以参考下。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

工作中经常要遇到将xlsx文件中的部分内容导入到数据库。通常我们都是用PhP程序Excel来读取。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

通过下面的方法我们可以很容易将一个excel表格读取成为php数组,之后就可以为所欲为了:8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$input_file="data.xlsx";8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$objPhP程序Excel=PhP程序Excel_IOFactory::load($input_file);8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$sheetData=$objPhP程序Excel->getSheet(0)->toArray(null,true,true,true);8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

如果文章到此结束,那价值就不大了。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

很不幸的情况总是存在的,当data.xlsx有上万行,每一行又有很多列,每一列又有很长的字符串,并且有的还有颜色等效果时,用上面的方法经常发生的情况就是内存不足。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好吧,我们还有ini_set来加大内存,还可以用set_time_limit来设置较长的超时,如下:8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

set_time_limit(90);8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ini_set("memory_limit","1024M");8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$input_file="data.xlsx";8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$objPhP程序Excel=PhP程序Excel_IOFactory::load($input_file);8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

$sheetData=$objPhP程序Excel->getSheet(0)->toArray(null,true,true,true);8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

但很负责任的说,这些都不是终极的方案。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

我曾经试过将内存设置到了2G,超时设置到了90秒,也仍然读不出一个4000行的花花绿绿的表格。原因都出在toArray这个方法上,它会将处理的结果全保存到数组中,这种方式在处理简单表格时还是很方便的,但在处理大表格时,真的是很杯具。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

我们的解决方案如下:8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

require'lib/PhP程序Excel.php';
set_time_limit(90);
$input_file="data.xlsx";
$objPhP程序Excel=PhP程序Excel_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_arras$key=>$val)
{
$currentSheet=$objPhP程序Excel->getSheetByName($key);//通过页名称取得当前页
$row_num=$currentSheet->gethighestRow();//当前页行数
//循环从第二行开始,第一行往往是表头
for($i=2;$i<=$row_num;$i  )
{
$cell_values=array();
foreach($valas$cell_val)
{
$address=$cell_val.$i;//单元格坐标
//读取单元格内容
$cell_values[]=$currentSheet->getCell($address)->getFormattedValue();
}
//看看数据
print_r($cell_values);
}
}

上面的方式算是较复杂的情况了,如果只是想将所有的单元格全读出来,用下面的方法就行了:8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

require'lib/PhP程序Excel.php';
set_time_limit(90);
$input_file="data.xlsx";
$objPhP程序Excel=PhP程序Excel_IOFactory::load($input_file);
$sheet_count=$objPhP程序Excel->getSheetCount();
for($s=0;$s<$sheet_count;$s  )
{
$currentSheet=$objPhP程序Excel->getSheet($s);//当前页
$row_num=$currentSheet->gethighestRow();//当前页行数www.mzdh.net
$col_max=$currentSheet->gethighestColumn();//当前页最大列号
//循环从第二行开始,第一行往往是表头
for($i=2;$i<=$row_num;$i  )
{
$cell_values=array();
for($j='A';$j<$col_max;$j  )
{
$address=$j.$i;//单元格坐标
$cell_values[]=$currentSheet->getCell($address)->getFormattedValue();
}
//看看数据
print_r($cell_values);
}
}

我们可以将上面的print_r地方改成组拼sql语句并写入文件,然后用mysql导入,当然也可以直接连接数据库向表中插入记录,这就随意了。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

用这种方法可以将上万行的记录很轻松的导入到表中,希望对大家有所帮助。8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

名站网址导航

解决nginx php弹出下载、不解析的问题8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

8QOAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,

标签:

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市