Экспорт в Excel — промежуточные форматы файлов?

#xml #excel #csv #delphi #delphi-6

#xml #excel #csv #delphi #delphi-6

Вопрос:

Я пытаюсь экспортировать очень большой объем данных (300.000 строк * 100 столбцов) в Excel (из приложения Delphi), и подход OLE (комбинированное решение из DevExpress DX, CX suites и нашего собственного кода) выдает сообщения об ошибках Недостаточно места для выполнения этой операции, ошибка создания массива вариантов. Для собственного экспорта нет хороших и готовых сторонних компонентов, и у меня есть идея использовать промежуточный файл: я могу экспортировать данные в некоторый промежуточный файл, а затем открыть этот файл в Excelt. Но какой формат наиболее подходит для такого действия?: ddd

  • CSV — самый простой, но может ли Excel восстановить формат столбца из данных CSV — для нас очень важно, чтобы данные о валютах экспортировались в виде чисел, и по ним можно было выполнять вычисления, чтобы данные о дате экспортировались в виде дат. CSV не содержит информации об этом типе.
  • XML кажется многообещающим, потому что к данным можно добавлять ввод и форматирование, но какой формат XML требуется для Excel, этот формат где-нибудь описан?
  • Файл DB кажется многообещающим, но он довольно старый, и я не уверен, нет ли ограничений на объем данных.

Я ищу решение для Delphi 6.

Комментарии:

1. С помощью XLSReadWriteII вы можете читать / записывать в формат XLS напрямую, без Excel.

2. Может быть, SQLLite? Но я не уверен, что это нормально для такого большого количества строк..

3. @LURD спасибо за упоминание. Я уже много лет не работал с материалами Excel. Но приятно знать, что есть такая библиотека!

4. Если вы ищете решение для Delphi 6 (как я предполагаю из вашего комментария к первому ответу), вы должны указать это.

5. Это много данных. Я бы искал 64-разрядные процессы. Вы усложняете жизнь, настаивая на древнем компиляторе и 32 bkt

Ответ №1:

Я бы рекомендовал использовать AdoDataSet. Вы можете напрямую записывать в файлы Excel через Adodataset. Вам нужно только использовать правильную строку подключения: connectionstrings . Это все компоненты MS, и у них не должно быть проблем с большими наборами данных.