Недавно я использовал PHP для экспорта Excel, который сначала генерировался синхронно, а потом сразу перешел к асинхронной генерации. Конечно, самое сложное здесь — это оптимизация времени. В этой статье собраны мои предложения по выбору и оптимизации обработки данных в процессе использования php для генерации excel
-
Есть готовые библиотеки классов для php для генерации Excel
-
phpexcel
Но он больше не поддерживается и поддерживает от php5.3 до php5.6; -
phpspreadsheet
Это по-прежнему очень хорошо, но оно недоступно, когда я нахожу большое количество данных в своем использовании, и оно доступно для php5.6 или выше. -
fputcsv()
Формат Excel — хорошее решение, когда объем данных большой.
-
-
Согласно вышеприведенным трем, генерацию данных можно разделить на два типа, так что же нам выбрать?
- Если вы используете библиотеку классов php, рекомендуется обновить php до последней версии php7, чтобы сэкономить память и быстрее рассчитывать
- Если вы используете библиотеку классов php, рекомендуется использовать последнюю версию phpspreadsheet, которая официально обновлена и гарантированно
- Если вы не используете библиотеку классов php, то
fputcsv()
это лучший способ
- почему я выбираю csv
- csv файл маленький
- данные файла csv могут храниться в больших или малых количествах
- Генерация csv не требует много ресурсов ЦП и времени, а время генерации Excel становится экспоненциальной кривой мощности с увеличением объема файловых данных.Время, на которое я ссылаюсь, исключает время обработки данных.Облако ecs 2-ядерный процессор php работает на 100% процессоре), чтобы сгенерировать около 29 900 Excel, что занимает почти 30 минут после обработки данных.CSV создается вместе с обработкой данных, а файл создается после обработки данных.
-
Как оптимизировать время обработки данных
- При циклическом просмотре данных уменьшите количество вложенных циклов
- При создании объектов данных csv или excel он формируется за один раз, чтобы уменьшить количество запросов к базе данных.Если вам нужно использовать другие данные, пожалуйста, заранее сгенерируйте данные соответствующей структуры данных
-
Обработка данных в формате csv для обеспечения отображения на китайском языке, числа не будут отображаться в экспоненциальном представлении.
- Как вести себя с китайцем
mb_convert_encoding($str, 'gbk', 'utf8')
Это гарантирует, что китайские символы могут нормально отображаться после открытия csv в Excel. - Как обращаться с такими номерами, как номер мобильного телефона, идентификационный номер
'shenfenzheng' => '="300000000000003333"',
пройти через=
Заставить содержимое ячейки быть строкой
- Как вести себя с китайцем