php excel导入读取公式本身不计算,使用PHPExcel读取Excel文件时忽略计算值
我正在使用setReadDataOnly(true)读取XLS文件.读取对象再次保存为新的Excel文件.不幸的是,一些单元格值的计算不正确(这与使用小计公式的单元格的计算错误有关).如果我理解正确,XLS文件中的每个单元格都包含预先计算的值以及公式.如果我可以让
PHPExcel在读取文件时不尝试计算公式(而只是按原样使用预先计算的值),我可以解决这个问题.我认为setReadDataOnly(true)或setPreCalculateFormulas(false)可能会实现这一点,但事实并非如此.
附加信息
感谢Mark的解释,我在我的案例中研究了getCalculatedValue()和getOldCalculatedValue()之间的区别.我使用以下代码读取文件,然后再次写出来:
$excel_reader = PHPExcel_IOFactory::createReaderForFile($file);
$excel_reader->setReadDataOnly(true);
$excel_obj_temp = $excel_reader->load($file);
// Test one of the values in question
$excel_obj_temp->setActiveSheetIndexByName("Form 11");
error_log("val:".$excel_obj_temp->getActiveSheet()->getCell("E36")->getCalculatedValue());
error_log("old_val:".$excel_obj_temp->getActiveSheet()->getCell("E36")->getOldCalculatedValue());
$new_file = "new_generated_name";
$excel_writer = new PHPExcel_Writer_Excel5($excel_obj_temp);
$excel_writer->setPreCalculateFormulas(false);
$excel_writer->save($unprotected_file);
读取文件时,它使用getOldCalculatedValue()显示正确的值.如果我在没有setPreCalculateFormulas(false)的情况下保存文件并再次读取文件,则getCalculatedValue()和getOldCalculatedValue()都返回相同(不正确)的结果.这符合Mark的解释,如果你没有设置setPreCalculateFormulas(false),将在保存时重新计算值
但是,如果我用setPreCalculateFormulas(false)保存文件(这似乎是正确的方法)并再次读取文件,getCalculatedValue()返回错误的结果,getOldCalculatedValue()返回0,这是错误的.
为什么保存后会清除缓存的值?我需要应用setPreCalculateFormulas(false)吗?
php excel导入读取公式本身不计算,使用PHPExcel读取Excel文件时忽略计算值相关推荐
- java excel 导入 格式转换_【转】JAVA实现EXCEL的导入和导出(二)
=================摘要===================== java如何操作Excel(数据导入导出)(转) jxl.jar,可以到http://sourceforge.net/ ...
- 计算机表格 求差,EXCEL表格中两列怎么计算差/2个excel表格数据求差
怎样在EXCEL表格中求两列数的差? A\B列为数据,在C1输入公式=A1-B1,选中C1之后,并双击右下角黑点向下填充. 算A列和与B列和的差值,用公式=SUM(A:A)-SUM(B:B)即可. 怎 ...
- excel导入导出工具类_Hutool Java工具类库导出Excel,超级简单
前言 在开发应用系统的时候,导出文件是必不可少的功能. 以前用过POI.easyexcel等工具的导入导出功能,但总感觉太麻烦了,代码特别多,感觉并不是很好用. 今天给大家介绍一款新工具,java工具 ...
- python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法
我将堆栈生成器表达式:with open(filename) as f_in: lines = (line.rstrip() for line in f_in) # All lines includi ...
- Excel制表技巧公式及函数
Excel制表技巧(48)公式及函数 2006年12月14日 星期四 22:18 函数与公式的概念 什么是函数? Excel函数即是预先定义,执行计算.分析等处理数据任务的特殊公式.以常用的求和函数S ...
- 10w 行级别数据的 Excel 导入优化记录
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者 | 后青春期的Keats 来源 | https://w ...
- 10w行级别数据的Excel导入优化记录
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:后青春期的Keats www.cnblogs.com/kea ...
- 4次迭代!10w行级别数据的Excel导入优化记录
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 链接 ...
- npoi 执行公式_生成excel文件时NPOI无法计算公式
NPOI库 . 已创建Excel文件,但未计算公式.这是我第一次使用NPOI库. 经过大量的谷歌搜索,我发现了一些代码片段,我用在我的代码计算公式,但仍然没有运气. 此例程使用随机数值和动态组合的公式 ...
- Java后端:10w行级别数据的Excel导入优化记录
一些细节 数据导入:导入使用的模板由系统提供,格式是 xlsx (支持 65535+行数据) ,用户按照表头在对应列写入相应的数据 数据校验:数据校验有两种: 字段长度.字段正则表达式校验等,内存内校 ...
最新文章
- linux centos7 报错: “Repository base is listed more than once in the configuration“和“没有可用软件包 xxx“ 解决方法
- 星巴克是如何处理订单的?
- 华为合作oppovivo小米鸿蒙,华为鸿蒙成功的关键:要让小米、OPPO、VIVO都用上鸿蒙...
- java中类型转换的造型_Java-类型转换 - 吉胖子很瘦的个人空间 - OSCHINA - 中文开源技术交流社区...
- dig指定服务器查询域名解析时间
- Linux USB驱动框架分析 【转】
- POJ 3154 Graveyard【多解,数论,贪心】
- 设计模式 接口隔离原则
- 关于MATLAB实现的数字信号处理(四)
- 玉伯 对 前端的 金玉良言
- 【ARM】【NEON加速介绍】
- cxgrid定位在第一行并显示内置编辑器
- Java 反射常用方法
- 1、pandas使用sort_values排序
- 转 自定义View之onMeasure()
- 嵌入式软件设计(1)--概述
- 获取windows7 trustedInstaller权限
- 繁体转简体 java_在java中,怎么把繁体字转化为简体字
- 游戏编程精粹1---数学技巧---可预测随机数---2
- matlab的RI是什么,LTE上报的CQI、PMI、RI分别有什么用
热门文章
- RESTful API入门学习笔记
- linux网桥中stp分析,linux网桥中stp分析
- 计算机毕业设计ssm基于远程协作的汽车故障诊断系统t6ipg系统+程序+源码+lw+远程部署
- 1、ZigBee 开发教程之基础篇—ZigBee简介和学习方法
- Unity不规则按钮
- linux 实现离线迅雷,Linux下使用wget/aria2进行离线迅雷批量下载
- 树莓派内网穿透方法大全
- 程序开发类本科论文结构【2022年修改】
- 基于java的springboot宠物商城系统毕业设计springboot开题报告
- 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)