powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как ускоренно выгрузить данные из Excel?
11 сообщений из 11, страница 1 из 1
Как ускоренно выгрузить данные из Excel?
    #40100027
Фотография adept_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

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

Код: 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
Как ускоренно выгрузить данные из Excel?
    #40100036
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчёт прямо любых не скажу, но формат Spreadsheet XML легко генерировать и Excel его быстро читает
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100042
Фотография adept_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael Longneck,
Спасибо!
но мне не надо чтобы ексель быстро читал, мне надо чтобы Дельфи быстро читал(а/о)
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100049
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adept_
у меня вопрос: как это же самое провернуть с Interior.Color ?
Не помню, векторизуется ли это свойство. Если да, то также. Но скорее всего нет, т.е. только поячеечно.
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100052
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adept_,
TMS Flecxel
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100061
crossa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую библиотеку OExport , там есть возможность получить цвет фона ячейки. Вряд ли найдете более быстрый компонент для Excel.
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100069
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crossa
Вряд ли найдете более быстрый компонент для Excel.
Извини, но найдется) xlsreadwriteII
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100076
Фотография adept_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. только сторонними компонентами это делается. я думал можно как-то через стандартный OLE. ясно. Спасибо
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100077
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя думал можно как-то через стандартный OLE.
Можно. Но с этим надо разбираться. Тем более стандартный грид без специальных обработчиков событий и допиливания отображать цветной фон тоже не будет.
...
Рейтинг: 0 / 0
Как ускоренно выгрузить данные из Excel?
    #40100078
Фотография adept_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у меня не грид, а график - гистограмма

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

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

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

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

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

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

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

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


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