Я знаю, что это очень поздно, но я решил прокомментировать, поскольку столкнулся с тем же, пытаясь экспортировать аналогичные данные с веб-сайта, который я разрабатывал. То, что я сделал, я копался в базовый XML, изменив расширение .xlsx на файл .zip (согласно этому предложению). Именно здесь я мог видеть, что Excel обычно создает ячейку с формулой, подобной этой:
<c r="J14" s="1"><f>H15*1.5</f><v>0</v></c>
Формула находится в <f>
, <v>
- это значение. Когда вы пытаетесь жестко закодировать формулу в ячейку из сторонней программы, она полностью отказывается от <f>
. Поэтому Excel не знает, как правильно его интерпретировать. Я полагаю, что нечто подобное происходит с файлами .xls, но, поскольку они не имеют базовой структуры XML, я не смог проверить файл.
Мне удалось исправить мою проблему с помощью SheetJS, однако это закодировано на сайте. Что касается автономного исправления, самое чистое решение, которое я мог бы найти, - это использовать макрос, чтобы выполнить трюк «replace = with =», но даже это более громоздко, чем я ожидал, и на самом деле не работало бы для меня из-за систем, которые мы использовать. Истинное решение было бы для приложения, которое выполняет экспорт, чтобы заранее интерпретировать текст ячейки и построить ячейки в формате <f>formula</f><v>value</v>
, когда результирующий текст начинается со знака равенства ,