![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Помогите Очень срочно нужно...
У меня есть таблица и шаблон Excel во вложение. мне нужно что бы серийный номер выводился на ячейке H15 а он выводит на С15...как сделать так что бы это исправить....МНЕ ЭТО НУЖНО ОЧЕНЬ СРОЧНО...ПОМОГИТЕ. Вот обработчик Код:
procedure TForm_aktperedaci.Button1Click(Sender: TObject);
var
XL, XArr: Variant;
i: Integer;
j: Integer;
begin
XArr:=VarArrayCreate([1,DataM.ADOTable_akt.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add(ExtractFileDir(Application.ExeName)+'\Акты\Акт Приема-передачи.xls');
// XL.Range['A14:B14'].Select;
// XL.Selection.Merge;
// XL.range['A14:B14'].value:='wwwwwwww'; //:= 'заголовок 1';
XL.Range['A14'].value:='№';
XL.Range['B14'].value:='Наименование';
XL.Range['H14'].value:='Серийный номер';
j := 15;
DataM.ADOTable_akt.First;
while not DataM.ADOTable_akt.Eof do
begin
i:=1;
while i<=DataM.ADOTable_akt.FieldCount do
begin
XArr[i] := DataM.ADOTable_akt.Fields[i-1].Value;
i := i+1;
end;
XL.Range['A'+IntToStr(j),
CHR(64+DataM.ADOTable_akt.FieldCount)+IntToStr(j)].Value := XArr;
DataM.ADOTable_akt.Next;
j:=j+1;
end;
XL.Range['A15',CHR(64+DataM.ADOTable_akt.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial cur';
XL.Selection.Font.Size:=10;
XL.Selection.ColumnWidth:=10;
XL.Selection.RowHeight:=15;
//with SaveDialog1 do
// if Execute then
// xl.ActiveWorkbook.SaveAs(FileName);
// XL.Range['A1','A1'].select;
XL.visible:=true;
end;Последний раз редактировалось Admin, 26.07.2011 в 09:53. |
|
#17
|
|||
|
|||
|
Все разобрался....
Вот решение моё... XL.Selection.Font.Size:=10; XL.Selection.ColumnWidth:=10; XL.Selection.RowHeight:=15; |
|
#18
|
|||
|
|||
|
Скажите а вот наоборот из Екселя в делфи! Делаю запрос на поиск 5/2 или 8а, он ничего не находит! Как в этом случае?
|
|
#19
|
|||
|
|||
|
Ситуация такая: надо сделать что-то вроде расписания
сам "экспорт": Код:
Sheet.Cells[idn+1,gpi]:=predmet1.text; Sheet.Cells[idn+2,gpi]:=prepod1.text; что касается расположения дней все работает Код:
//if ComboBoxDen.Text='Понедельник' then idn:=1; //if ComboBoxDen.Text='Вторник' then idn:=11; //if ComboBoxDen.Text='Среда' then idn:=21; //if ComboBoxDen.Text='Четверг' then idn:=31; //if ComboBoxDen.Text='Пятница' then idn:=41; //if ComboBoxDen.Text='Суббота' then idn:=51; а вот тут уже проблемка возникает... в DBLookUpComboBox есть группы: КС-2, КС-1 и т.д. Код:
if group1.Text='КС-2' then gpi:=3; if group1.Text='КС-1' then gpi:=4; порядок групп идет из БД, т.е. если вначале добавить, например, СТ-1, то он будет заполнять ячейки уже СТ-1, а не КС-2.. т.е. нужно взять позицию из DBLookUpComboBox и указать с какой ячейки начинать.. попытался сделать так: Код:
if group1.Text='КС-2' then gpi:=strtoint(inttoStr(strToInt(adotable19.FieldBy Name('ID').AsString)+2));надо что-то на подобии: Код:
if adotable19.FieldByName('ID').AsString (или adotable19.Fields.Fields[1]) then gpi:=strtoint(inttoStr(strToInt(adotable19.FieldBy Name('ID').AsString)+2));если пятая позиция то 5+2(7-й столбец) при постороении книги группы так же берутся из базы: Код:
gp:=3; ADOTable6.First; for gg:=0 to ADOTable6.RecordCount-1 do begin Sheet:=XLApp.Workbooks[1].WorkSheets['Расписание']; Sheet.Cells[1,gp]:=ADOTable6.Fields.Fields[1].AsString; Colum.Columns[gp].ColumnWidth:=20; Sheet.Cells[gp].HorizontalAlignment:=3; Sheet.Cells[gp].Borders.LineStyle:=-4119; Sheet.Cells[gp].Interior.Color:=rgb(230,230,230); Inc(gp); ADOTable6.Next; end; Последний раз редактировалось mejikuu, 22.02.2012 в 01:08. |
|
#20
|
|||
|
|||
![]() |
|
#21
|
|||
|
|||
|
Здравствуйте! Помогите! я не знаю что делать, вот код...
procedure TForm3.BitBtn2Click(Sender: TObject); var Excel,Range, Cell1, Cell2, VData:Variant;WorkBk: _WorkBook; WorkSheet : _WorkSheet; begin Excel:= CreateOleObject('Excel.Application'); Excel.Workbooks.Open[extractfilepath(paramstr(0))+'Личнаякарточка.xlt', 0, True]; Excel.WorkBooks[1].WorkSheets[2].Range['B13:B16']:=form3.DBGrid1.DataSource.DataSet.FieldByName('Ро дство').AsString; мне нужно чтобы все строки, содержащиеся в столбце "родство", вывелись в введенном выше диапазоне ячеек... попробовала так, как показано здесь, но у меня почему-то выводятся данные только из первой строки DBGrid |
|
#22
|
|||
|
|||
|
Здравствуйте, подскажите пожалуйста, как реализовать код, если нужно выгрузить данные из запроса ADoquary (MS SQL), а главное чтобы перед открытием сформированного Excel-документа открывался "Предварительный просмотр страницы"
|
|
#23
|
||||
|
||||
|
Вопрос знатокам, как организовать экспорт в эксель, если на компьютере отсутствует пакет MS Office, вместо него стоит OpenOffice
|
|
#24
|
||||
|
||||
|
Цитата:
![]() Но есть много и бесплатных. Можешь посмотреть здесь: http://www.torry.net/pages.php?id=551 |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Lost_Fish (07.09.2012)
| ||