Существуют различные форматы файла Excel/XLSX, а какая самая маленькая?

Итак, мы сначала попытались разрешить пользователю загружать CSV-файлы через свой браузер, который работал нормально (некоторые файлы составляют около 375 МБ). Тем не менее, похоже, что клиент не примет это из-за а) форматирования чисел, б) удаления ведущих нулей и в) изменения длинных чисел, таких как код состояния 157839481905 to 1.58E10.

Если вы использовали excel вы хорошо знакомы с этими "я думал, что вы хотели этой" поведение..

Так что нам нужно поток файла в Excel, но есть разные форматы? (Предположим, что пользователь имеет доступ к последней версии Excel для этого вопроса)

Я считаю, что Excel может открыть правильно указанный XML-файл в виде электронной таблицы, которая может содержать правильные инструкции "форматировать это как текст", но на больших файлах, которые действительно могут выйти из-под контроля. Есть ли более родной формат excel, который является более компактным? Без разметки? Если вы знаете об этом, где это описано?

-- EDIT --

Я думал, что помогу сообществу в том, что я нашел. Сначала мы попробовали использовать ="0040" т. е. an равно перед кавычками. Работает, но слишком большой размер на большом файле, и Excel волнуется и падает.

мы пробовали специальный символ внутри кавычек раньше, работал, но Форматирование было проблемой.

вы можете поток XLSX файл? Нет!

причина: файл XLSX на самом деле представляет собой zip-файл с двумя ключевыми файлами внутри, один имени sharedStrings.xml, который представляет собой список всех уникальных значений ячеек, а другой-список ячеек, но с номером, ссылающимся на первые sharedStrings.XML-файл. Вся папка заархивирована и, вот, это ваш XLSX файл. Итак, файл XLSX должны быть построен, а не потоковый.

16
задан Oliver Williams
22.04.2023 17:18 Количество просмотров материала 2860
Распечатать страницу

2 ответа

это на самом деле не ответ на ваш вопрос, но хорошо к причине вашей проблемы.

Если вы хотите, чтобы избежать сокращения ваших чисел в Excel при открытии файла csv, вы можете использовать ="0123456789" вместо 0123456789, как если бы это была формула.

пример:

Name,Value,Value as text
Small int,01234,="01234"
Long int,0123456789,="0123456789"
Very long int,01234567890123456789,="01234567890123456789"

результат:

Result in Excel

2
отвечен thibautg 2023-04-24 01:06

Я вижу несколько вариантов, но я не уверен, что он будет работать (кстати, у меня нет опыта работы с xml):

Первое, что вы отклонили, - это форматирование всего текста. Хорошо, файл будет слишком большим.

во-вторых, добавьте "'" перед проблемными числами, которые преобразуют их в текст. Снова...

В-третьих:" новый " xlsx должен быть довольно хорош при уменьшении размера файла, намного лучше, чем формат xls.

четвертое изменение формата текста и измените кодировку всей книги на ASCII или что-то подобное простое. Подробнее здесьhttps://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16 (если нужно, я добавлю больше информации здесь)

Не уверен, но, как и последнее, я бы попытался преобразовать в csv, а затем изменить кодировку на ASCII или меньшую кодировку.

0
отвечен Bad IT technician 2023-04-24 03:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх