Решение для экспорта данных в PHP

PHP

Недавно я использовал PHP для экспорта Excel, который сначала генерировался синхронно, а потом сразу перешел к асинхронной генерации. Конечно, самое сложное здесь — это оптимизация времени. В этой статье собраны мои предложения по выбору и оптимизации обработки данных в процессе использования php для генерации excel

  1. Есть готовые библиотеки классов для php для генерации Excel

    1. phpexcelНо он больше не поддерживается и поддерживает от php5.3 до php5.6;
    2. phpspreadsheetЭто по-прежнему очень хорошо, но оно недоступно, когда я нахожу большое количество данных в своем использовании, и оно доступно для php5.6 или выше.
    3. fputcsv()Формат Excel — хорошее решение, когда объем данных большой.
  2. Согласно вышеприведенным трем, генерацию данных можно разделить на два типа, так что же нам выбрать?

    1. Если вы используете библиотеку классов php, рекомендуется обновить php до последней версии php7, чтобы сэкономить память и быстрее рассчитывать
    2. Если вы используете библиотеку классов php, рекомендуется использовать последнюю версию phpspreadsheet, которая официально обновлена ​​и гарантированно
    3. Если вы не используете библиотеку классов php, тоfputcsv()это лучший способ
  3. почему я выбираю csv
    1. csv файл маленький
    2. данные файла csv могут храниться в больших или малых количествах
    3. Генерация csv не требует много ресурсов ЦП и времени, а время генерации Excel становится экспоненциальной кривой мощности с увеличением объема файловых данных.Время, на которое я ссылаюсь, исключает время обработки данных.Облако ecs 2-ядерный процессор php работает на 100% процессоре), чтобы сгенерировать около 29 900 Excel, что занимает почти 30 минут после обработки данных.CSV создается вместе с обработкой данных, а файл создается после обработки данных.
  4. Как оптимизировать время обработки данных

    1. При циклическом просмотре данных уменьшите количество вложенных циклов
    2. При создании объектов данных csv или excel он формируется за один раз, чтобы уменьшить количество запросов к базе данных.Если вам нужно использовать другие данные, пожалуйста, заранее сгенерируйте данные соответствующей структуры данных
  5. Обработка данных в формате csv для обеспечения отображения на китайском языке, числа не будут отображаться в экспоненциальном представлении.

    1. Как вести себя с китайцемmb_convert_encoding($str, 'gbk', 'utf8')Это гарантирует, что китайские символы могут нормально отображаться после открытия csv в Excel.
    2. Как обращаться с такими номерами, как номер мобильного телефона, идентификационный номер'shenfenzheng' => '="300000000000003333"',пройти через=Заставить содержимое ячейки быть строкой