Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];

Вниз

Excel + Delphi   Найти похожие ветки 

 
M@D   (2009-02-05 18:41) [0]

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

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

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

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


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


> подскажите что почитать
>

Книги.. можно  статьи.. коих очень много на Королевстве Делфи


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

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

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


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

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


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


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


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


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

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

Макрос будет постоянно меняться, я хочу его из менять в текстовом файле и  вставлять 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 17:18) [6]

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


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

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


 
sniknik ©   (2009-02-06 18:12) [8]

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


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


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


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


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

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


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


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


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


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


 
sniknik ©   (2009-02-06 20:48) [12]

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

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


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

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


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


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

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

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

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


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


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


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


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


> Moron


> M@D


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


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

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


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

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


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

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


 
имя   (2009-02-06 21:10) [20]

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.01 c
2-1260216994
istok20
2009-12-07 23:16
2010.01.31
Invalid pointer operation...


15-1258913368
Alkid
2009-11-22 21:09
2010.01.31
А что это Каспер ругается на наш форум?


15-1259395731
DVM
2009-11-28 11:08
2010.01.31
Подскажите хорошую программу для хранения персональной инфы


15-1259186890
Германн
2009-11-26 01:08
2010.01.31
Мультизагрузка, boot.ini и иже с ними.


2-1260359041
webpauk
2009-12-09 14:44
2010.01.31
Рекурсивная функция и уровень рекурсии





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский