Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Excel + Delphi [D7, MSSQL]


Страницы:   1 2

M@D ©   (2009-02-05 18:41:00) 

Добрый вечер.
Столкнулся с 2-мя проблемами при работе с Excel;

1) Это выгрузка в Excel.
А именно сначала создание книги, ее форматирование в текст всех ячеек (то бишь чтобы Excel самостоятельно не перевел в формат который ему нравится), а потом заливка из csv-файлауже выгруженных из базы данных.  Жирным то что не получается.
2) Вставка в Excel макроса и его выполнение

Направьте кодом на путь истинный, ну или подскажите что почитать

Заранее спасибо за помощь


sniknik   (2009-02-06 21:11:00) [1]

> Ладно, если никто не знает буду искать другие решения...
открой файл непосредственно из Excel-я, программы в смысле, сформируй сколько ты там формируеш блоков, после запусти программу ручками и открой все. ???


  (2009-02-06 21:10:00) [2]

Удалено модератором
Примечание: падонковщина


M@D   (2009-02-06 21:08:00) [3]

ниче не понял =)


Сергей М.   (2009-02-06 21:07:00) [4]

Чем больше млякаешь - тем больше "конители" тебе и "бухам".
"Бухи" и так люди занятые, да еще ты, млякарь, им хлопот добавляешь)


M@D   (2009-02-06 21:03:00) [5]

Удалено модератором


Сергей М.   (2009-02-06 20:56:00) [6]


> Moron


> M@D


Ну-у-у началась буффонада с переодеваниями))


Сергей М.   (2009-02-06 20:55:00) [7]


> кстати не 66 тонн а 65536


Вот спасибо-то за уточнение !
Век не забуду)
И все же - за каким леши СЕМЬ МИЛЛИОНОВстрок пытаться пхать в ёхельный лист ?)


M@D   (2009-02-06 20:54:00) [8]


> вроде как в 2007 версии повысили до миллиона, но точно не
> скажу, не пользовался ни разу.

да это так, лимон с хвотиком

Ладно, если никто не знает буду искать другие решения...

Спасибо за не помощь


Moron   (2009-02-06 20:49:00) [9]

Удалено модератором
Примечание: а ты кто?


sniknik   (2009-02-06 20:48:00) [10]

> и вылетает с "OLE Error"
как это там говорится - что то на что то менять только время терять.
> ... // тут ругается
а тут типа все зашибись? ты бы разобрался в причине, и глядишь это оказались бы те самые "7 миллионов строк и 67 столбцов"...

> не превышающей 66 тысяч ?
вроде как в 2007 версии повысили до миллиона, но точно не скажу, не пользовался ни разу.


Сергей М.   (2009-02-06 20:36:00) [11]


> M@D   (06.02.09 18:31) [9]


> 7 миллионовстрок


У тебя все ли с головой в порядке ?
Ты когда-нть на ёхельный лист внимательно смотрел ли ?
Видел ли ты, что последня строка ёхельного листа нумеруется цифирью, не превышающей 66 тысяч ?


M@D   (2009-02-06 18:32:00) [12]

я знаю что не влезет на страницу, разбиваю по литам


M@D   (2009-02-06 18:31:00) [13]


> или ADORecordSet или вариантный массив, и для того и для
> другого есть методы прямо у ячейки(/диапазона) в которую
> нужно вставить (кстати описанные на королевстве, в статье
> про работу с Excel).
> а csv или другой файл, это только если его получаешь откуда
> то, а формировать специально для вставки глупо.
>


Вариантый массив не подходит, так как много данных, и вылетает с "OLE Error"
Даже пытался вставлять данные поблочно, но это долго (7 миллионов строк и 67 столбцов)


sniknik   (2009-02-06 18:12:00) [14]

> Ваши педложения?
или ADORecordSet или вариантный массив, и для того и для другого есть методы прямо у ячейки(/диапазона) в которую нужно вставить (кстати описанные на королевстве, в статье про работу с Excel).
а csv или другой файл, это только если его получаешь откуда то, а формировать специально для вставки глупо.


M@D   (2009-02-06 17:23:00) [15]

< Сергей М.
Ваши педложения?


Сергей М.   (2009-02-06 17:18:00) [16]

Решать эту задачу через промежуточный файл (тем паче через csv) - это как к соседу через Антарктиду в гости сходить)


M@D   (2009-02-06 17:10:00) [17]

> Виталий Панасенко(дом)

Макрос будет постоянно меняться, я хочу его из менять в текстовом файле и  вставлять Excel , но не знаю как это сделать

по поводу заливки

for i := 0 to Grid.DataController.DataSet.RecordCount - 1 do begin
   for j := 0 to grid.VisibleColumnCount - 1 do begin
     S := S + StringReplace(Grid.ViewData.Rows[i].DisplayTexts[j], ';', '', [rfReplaceAll]) + ';'; // .DataController.DataSet.Fields[j].AsString, ';', '', [rfReplaceAll]); //{DataController.DataSet.FieldsByName().AsString,} ';', '', [rfReplaceAll]) + ';';
   end;
   S := Copy(S, 1, Length(S) - 1);
   S := StringReplace(S, #$D, '', [rfReplaceAll]);
   S := StringReplace(S, #$A, '', [rfReplaceAll]);
   S := StringReplace(S, #9, '', [rfReplaceAll]);
   Table.Add(S);
   S := '';
   FRM_Export.PB.Position := i;
   FRM_Export.Label1.Caption :=IntToStr(i) + ' из ' + InttoStr(Grid.DataController.DataSet.RecordCount);
   Application.ProcessMessages;
 end;
 grid.DataController.DataSet.EnableControls;
 Path := ExtractFilePath(Application.ExeName);
 Table.SaveToFile(Path + 'tmp.csv');
 try
   FRM_Export.Label1.Caption := 'Форматирование';
   Application.ProcessMessages;
   XL := CreateOleObject('Excel.Application');
   Workbook := XL.WorkBooks.Add;
   XL.DisplayAlerts := False;
   XL.Visible := False;
   XL.cells.select;
   XL.selection.NumberFormat:= '@';
   Workbook := XL.WorkBooks.Open(Path + 'tmp.csv'); // тут ругается
   XL.cells.select;
   XL.selection.Columns.AutoFit;
   for col := 0 to grid.VisibleColumnCount -1 do begin
     WorkBook.WorkSheets[1].Cells.item[1,col+1].HorizontalAlignment := -4108;
     WorkBook.WorkSheets[1].Cells.item[1,col+1].VerticalAlignment := -4108;
     WorkBook.WorkSheets[1].Cells.item[1,col+1].Columns.Interior.Color :=$00FFBD9D;
     WorkBook.WorkSheets[1].Cells.item[1,col+1].Borders.LineStyle := 1;
     WorkBook.WorkSheets[1].Cells.item[1,col+1].Font.Bold := True;
     WorkBook.WorkSheets[1].Cells.item[Grid.DataController.DataSet.RecordCount + 2,col+1].Columns.Interior.Color :=$CDCDC1;
   end;

   end;


Я не прошу вас написать за меня код я просто не знаю как Открытый Excel вставить уже созданный csv файл


Сергей М.   (2009-02-06 10:47:00) [18]


> Жирным то что не получается


Потому что Ёхелю, в отличие от тебя, не известно что такое "заливка")


Виталий Панасенко(дом)   (2009-02-05 22:46:00) [19]

Запиши в макрос, как сам эксель это делает и интерпретируй на свой лад..будет практически один в один


M@D   (2009-02-05 21:49:00) [20]

> Виталий Панасенко(дом)
ну спасибо узнал от Вас много нового

перерыл и рою до сих пор информацию
если бы знал где искать не обращался


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо