首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP:将Excel转换为CSV,但使用实际单元格值而不是显示值

PHP:将Excel转换为CSV,但使用实际单元格值而不是显示值
EN

Stack Overflow用户
提问于 2022-09-07 00:05:33
回答 1查看 139关注 0票数 1

我有一个Excel文件,我想把它转换成CSV。我的Excel文件有一些单元格是格式化的,因此显示了1234.56

问题是,当我将Excel文件转换为CSV时,使用PHPSpreadSheet:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Writer\Csv;

$reader = new Xlsx();
$spreadsheet = $reader->load('path_to_excel_file.xlsx');

$writer = (new Csv($spreadsheet))
    ->setEnclosure('')
    ->setLineEnding("\n")
    ->setDelimiter(';');
$writer->setSheetIndex(0);
$writer->save('path_to_csv.csv');

CSV文件中的值存储为1234.56 € (包括空格和符号),而我希望将它们存储为1234.56

我知道,在LibreOffice中,当将Excel转换为CSV时,您可以指定是按原样存储值还是将其格式化。

对于如何使用PHP (理想情况下使用PHPSpreadSheet )执行此操作,您有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-07 01:59:23

根据手册,您只需要在加载excel表之前设置Read data only选项。

请查看以下更新的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Writer\Csv;

$reader = new Xlsx();
// set the Read data only option
$reader->setReadDataOnly(true);
$spreadsheet = $reader->load('path_to_excel_file.xlsx');

$writer = (new Csv($spreadsheet))
    ->setEnclosure('')
    ->setLineEnding("\n")
    ->setDelimiter(';');
$writer->setSheetIndex(0);
$writer->save('path_to_csv.csv');

参考资料:https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-and-writing-to-file/#reading-and-writing-to-file

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73632052

复制
相关文章
SQL数值类型的函数
在SQL中,数值类型的函数主要用于对数字数据进行操作和计算。这些函数提供了丰富的数学计算和统计分析功能,可用于查询和汇总数据。下面将介绍一些常用的数值类型的函数,以及它们的用法和示例。
堕落飞鸟
2023/05/10
9570
Excel公式技巧:查找最接近的数值
公式中,COUNTIF函数返回单元格区域中小于指定值的数值的个数,将其作为参数传递给SMALL函数,得到小于指定值但最接近指定值的数。
fanjy
2023/02/24
4.1K0
SQL 获取纯数值的行
在 MySQL 库中有个 mix 表,它有一个列叫作 v,该列存储了文本和纯数值的内容。部分数据如下:
白日梦想家
2020/11/26
1.6K0
查找低效的sql语句
SELECT  EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM  V$SQLAREA WHERE  EXECUTIONS>0 AND  BUFFER_GETS > 0 AND  (BUFFER_GETS-DISK_READS)/BUFFER_GETS
阿新
2018/04/09
1K0
sql语句 模糊查找like
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135288.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
1K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
id int primary key auto_increment, — 主键id
全栈程序员站长
2022/09/22
4.3K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
sql带条件查找最小缺失编号
  查找在CASE_SET_ID为某个条件下的最小缺失编号 如 1 3 获取的值是2 , 2 3则获取的值是1 /** * select * case when not exists(select * from rt_test_case where CASE_NUM=1) then 1 * else (select min(IFNULL(CASE_NUM,0)+1) from rt_test_case as a
cfs
2018/03/08
1K0
SQL查找是否 "存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要**SELECT count(*) **呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
搜云库技术团队
2021/08/20
4590
SQL查找是否"存在",别再 count 了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count。
终码一生
2022/04/14
3930
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?
民工哥
2020/09/15
4610
SQL查找是否"存在",别再count了!
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
Java小咖秀
2022/09/23
4090
SQL 查找是否"存在",别再 count 了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count
程序员小猿
2021/07/29
4050
SQL查找是否"存在",别再count了!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*)呢?
搜云库技术团队
2022/05/24
4290
SQL查找是否"存在",别再count了!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
4760
SQL查找是否"存在",别再count了!
查找重复姓名的sql语句
方式一:select * from 学生表 where 姓名 in(select 姓名 from 学生表 group by 姓名 having count(姓名)>=2)
阮键
2020/09/07
5K0
查找重复姓名的sql语句
SQL进阶-4-查找重复行数据
有时候数据库中表的数据可能存在重复的情况,如何从表中找出重复的数据呢?本文中提到两种方式:
皮大大
2021/03/01
1.6K0
SQL进阶-4-查找重复行数据
算法练习(19) - 查找循环有序数组任一数值的位置
一个循环有序数组(如:3,4,5,6,8,9,11,0,1,2),要查找任一数值的位置。要求算法时间复杂度为log2(n)。 输入:数组 和 待查找元素 输出:返回数组元素下标,如果不存在返回-1 循环有序数组即原本有序数组折断后产生的,可认为数组原本排序是递增的,且不包含重复元素。
惊羽-布壳儿
2022/06/15
3990
如何查找MySQL中查询慢的SQL语句
如何查找MySQL中查询慢的SQL语句
Java架构师必看
2021/09/18
5.9K0
如何快速查找占用CPU过高的SQL
面对数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。
MySQL数据库技术栈
2022/05/25
1.8K0
如何快速查找占用CPU过高的SQL
还不会用SQL对数值结果进行格式化?
在最近的项目开发中,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种: (1)在写SQL的时候,直接保留两位小数 (2)在java代码里面将查询出来的数进行格式化处理,保留两位小数 先说第一种方案:在SQL中的处理 我使用的oracle数据库,所以有3个函数可以选择,分别是: (1)ROUND(A/B,2) ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数位数。例子如下:
xdd
2022/07/12
8410
还不会用SQL对数值结果进行格式化?

相似问题

Oracle SQL数值查找10个字符

10

如何使用PROC SQL查找数值变量的长度

34

用于跨多列查找多数值的SQL

31

在SQL中查找特定值的具体数值

111

在SQL中使用按位逻辑查找整数值

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文