为什么 in2csv 不转换标题为 non-ascii sheet 的 XLSX 文件? [CentOS x64]

Why in2csv not converting my XLSX file with non-ascii sheet title? [CentOS x64]

我的问题是我有一个 Excel XLSX 文件,名称为 non-ascii sheet (Общий отчет),我正在尝试使用 in2csv 将其转换为 CSV工具。我 运行 它来自 PHP 使用 exec 函数。

在我的本地计算机 (Windows 10 x64) 上它工作正常。我试图在 CsntOS x64 VDS 上 运行 它,当我从终端启动我的 PHP 脚本(使用 exec 调用 in2csv 工具)时 - 它也工作正常。但是当我从 cron (php -f ./task.php) 运行 它时 - 它不会产生任何错误,但生成的 CSV 文件是空白的!

我做了一些测试,检查了用户和组 运行ning PHP 脚本,python 默认编码,但仍然没有线索。请帮忙!

这是转换文件的命令:

in2csv --locale ru_RU --sheet "Общий отчет" --encoding windows-1251 "prices.xlsx" > "prices.csv"

终于想通了

PHP 的 exec 函数中的命令应如下所示:

exec('/usr/bin/in2csv --locale ru_RU --sheet "Общий отчет" --encoding windows-1251 "/home/admin/www/html/prices.xlsx" > "/home/admin/www/html/prices.csv"');

cron 命令应该如下所示:

/usr/bin/php -f /home/admin/www/html/task.php

也就是说,您需要提供所有可执行文件的完整路径,这在终端和 Cron 中都有效!