Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизПроблема создания excel документа... Найти похожие ветки
← →
Vyacheslav © (2004-12-21 12:49) [0]Есть не хитроумная проседурра в которой созд excel документ и заполняеться данными и базы.... так вот в Delphi7 (D 6 нормально)
все строки в нутри проседуры начиающиеся на
ExcelWorksheet1.Range выдают ощибку
....exception class EOleException whit message "Ole error 800A03EC".... В чем проблема ?
begin
try
screen.Cursor:=crHourGlass;
application.ProcessMessages;
ExcelApplication1:=TExcelApplication.Create(nil);
ExcelWorkbook1:=tExcelWorkbook.Create(nil);
ExcelWorksheet1:=TExcelWorksheet.Create(nil);
ExcelApplication1.ConnectKind:=ckNewinstance;
ExcelApplication1.Connect;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks. Add(emptyparam,0));
ExcelApplication1.ActiveWorkbook.ActiveSheet;
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.Worksheets[1] as Excel2000.ExcelWorksheet);
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[1,1];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[65535,1];
ExcelWorksheet1.Range[IR1, IR2].ColumnWidth:=30;
ExcelWorksheet1.Cells.Item[1,1]:="Workers"" time-board from "+datetostr(date1)+" to "+datetostr(date2);
adq:=TADOQuery.Create(nil);
adq.Connection:=form1.ADOConnection1;
adq.SQL.Clear;
adq.SQL.Add("select * from qallemployers");
adq.Active:=TRUE;
ExcelWorksheet1.Cells.Item[2,1]:="Workers";
ExcelWorksheet1.Cells.Item[3,1]:="";
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[2,1];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[4,1];
ExcelWorksheet1.Range[IR1,IR2].Merge(false);
ExcelWorksheet1.Range[IR1,IR2].VerticalAlignment:=2;
ExcelWorksheet1.Range[IR1,IR2].HorizontalAlignment:=3;
ExcelWorksheet1.Range[IR1,IR2].Font.Bold:=true;
days:=daysbetween(date1,date2);
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[1,1];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[1,(days+1)*5+1];
ExcelWorksheet1.Range[IR1,IR2].Merge(false);
ExcelWorksheet1.Range[IR1,IR2].VerticalAlignment:=2;
ExcelWorksheet1.Range[IR1,IR2].HorizontalAlignment:=3;
ExcelWorksheet1.Range[IR1,IR2].Font.Bold:=true;
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[1,1];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[1,255];
ExcelWorksheet1.Range[IR1,IR2].RowHeight:=40;
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[1,2];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[65535,(days+1)*5+1];
ExcelWorksheet1.Range[IR1,IR2].ColumnWidth:=7;
IDispatch(IR1) := ExcelWorksheet1.Cells.Item[2,2];
IDispatch(IR2) := ExcelWorksheet1.Cells.Item[2,(days+1)*5+1];
ExcelWorksheet1.Range[IR1,IR2].Merge(false);
ExcelWorksheet1.Range[IR1,IR2].VerticalAlignment:=2;
ExcelWorksheet1.Range[IR1,IR2].HorizontalAlignment:=3;
ExcelWorksheet1.Range[IR1,IR2].Font.Bold:=true;
ExcelWorksheet1.Cells.Item[2,2]:="Days";
и т.д..
← →
Palladin © (2004-12-21 13:52) [1]Range лучше задавать в строковом виде.
← →
Sash © (2004-12-21 14:04) [2]типа вот так
Range["IR1,IR2"]
← →
palva © (2004-12-21 14:34) [3]Очень нестандартный код. Если писали не вы, то лучше переписать стандартно. Если писали вы, то лучше ознакомиться со стандартными примерами, и от них уже танцевать. Если процедура, как вы пишете, не хитроумная, то не стоит так хитро ее реализовывать.
← →
Palladin © (2004-12-21 18:17) [4]
> [2] Sash © (21.12.04 14:04)
Чиста конкретна так
← →
Palladin © (2004-12-21 18:18) [5]Стоп. Не так.
Range["A1","B2"]
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c