Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как ускоренно выгрузить данные из Excel? / 11 сообщений из 11, страница 1 из 1
25.09.2021, 17:56
    #40100027
adept_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
Здравствуйте!

Вот стандарт, для новичков, поячеечно (я такой же):

Код: pascal
1.
2.
3.
4.
//выводим данные в таблицу
  for I := 0 to Rows-1 do
    for j := 0 to Cols-1 do
        StringGrid1.Cells[J,I]:=WorkSheet.UsedRange.Cells[I+1,J+1].Value;


взято тут

а вот есть код который в Интернет (оттуда же):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
var Rows, Cols, i,j: integer;
    WorkSheet: OLEVariant;
    FData: OLEVariant;
    d: TDateTime;
begin
  //открываем книгу
  ExcelApp.Workbooks.Open(edFile.Text);
  //получаем активный лист
  WorkSheet:=ExcelApp.ActiveWorkbook.ActiveSheet;
  //определяем количество строк и столбцов таблицы
  Rows:=WorkSheet.UsedRange.Rows.Count;
  Cols:=WorkSheet.UsedRange.Columns.Count;
 
  //считываем данные всего диапазона
  FData:=WorkSheet.UsedRange.Value;
 
  StringGrid1.RowCount:=Rows;
  StringGrid1.ColCount:=Cols;
 
//засекаем время начала чтения
  d:=Now;
 
//выводим данные в таблицу
  for I := 0 to Rows-1 do
    for j := 0 to Cols-1 do
        StringGrid1.Cells[J,I]:=FData[I+1,J+1];


всё здорово, великолепно, но

у меня вопрос: как это же самое провернуть с Interior.Color ?

быстро выгрузить любые свойства ячейки? Как?

у меня у каждой ячейки может быть свой цвет фона. А ячеек - много)

Спасибо
...
Рейтинг: 0 / 0
25.09.2021, 19:33
    #40100036
Michael Longneck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
Насчёт прямо любых не скажу, но формат Spreadsheet XML легко генерировать и Excel его быстро читает
...
Рейтинг: 0 / 0
25.09.2021, 20:04
    #40100042
adept_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
Michael Longneck,
Спасибо!
но мне не надо чтобы ексель быстро читал, мне надо чтобы Дельфи быстро читал(а/о)
...
Рейтинг: 0 / 0
25.09.2021, 23:07
    #40100049
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
adept_
у меня вопрос: как это же самое провернуть с Interior.Color ?
Не помню, векторизуется ли это свойство. Если да, то также. Но скорее всего нет, т.е. только поячеечно.
...
Рейтинг: 0 / 0
26.09.2021, 00:22
    #40100052
Penner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
adept_,
TMS Flecxel
...
Рейтинг: 0 / 0
26.09.2021, 11:22
    #40100061
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
Использую библиотеку OExport , там есть возможность получить цвет фона ячейки. Вряд ли найдете более быстрый компонент для Excel.
...
Рейтинг: 0 / 0
26.09.2021, 12:42
    #40100069
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
crossa
Вряд ли найдете более быстрый компонент для Excel.
Извини, но найдется) xlsreadwriteII
...
Рейтинг: 0 / 0
26.09.2021, 14:05
    #40100076
adept_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
т.е. только сторонними компонентами это делается. я думал можно как-то через стандартный OLE. ясно. Спасибо
...
Рейтинг: 0 / 0
26.09.2021, 14:59
    #40100077
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
авторя думал можно как-то через стандартный OLE.
Можно. Но с этим надо разбираться. Тем более стандартный грид без специальных обработчиков событий и допиливания отображать цветной фон тоже не будет.
...
Рейтинг: 0 / 0
26.09.2021, 15:10
    #40100078
adept_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
а у меня не грид, а график - гистограмма

ексель для меня просто хранилище данных.

а ща пока у меня сборная солянка по чтению:
текст из ячеек читается быстро, а цвета ячеек - поштучно.

а чтение-то таблицы один фиг идёт в двух циклах внешний и внутренний. даже в трёх - ещё и по листам

ладно. пока непонятно. Борис сказал, что невозможно. эх

Спасибо за ответы!
...
Рейтинг: 0 / 0
27.09.2021, 10:46
    #40100148
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ускоренно выгрузить данные из Excel?
В Экселе есть такая особенность: Жмешь комбинацию "в конец данных". Позиционирование правильное.

Удаляешь часть строк в середине/в хвосте. Становишься вверху и снова жмешь "в конец данных" и...... оно позиционирует старое значение, т.е. до удаления строк. Причем при сохранении файла эта неверная позиция тоже сохраняется.

Кароч UsedRange такая себе полезность.... С ней надо осторожно.

Я когда делал ф-л импорта, определял конец данных программно: шагал вперед большими шагами в поиске пустой ячейки, а потом возвращался назад, пока данные не появлялись. Работало вполне шустро и предсказуемо точно.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как ускоренно выгрузить данные из Excel? / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]