#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, и у них не должно быть проблем с большими наборами данных.