Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизExportGrid4ToExcel Найти похожие ветки
← →
Val12 (2004-02-03 17:49) [0]При експорте ExportGrid4ToExcel поля Integer с значением 0 отабражаются как 00:00:00.AUseNativeFormat=True.Help!
← →
Карелин Артем (2004-02-04 10:57) [1]От лукавого это все. Вот как это делаю я:
procedure TfReportReReg.Button2Click(Sender: TObject);
var Excel,WorkBook,Sheet:variant;
begin
try
Excel := CreateOleObject("Excel.Application");
Excel.SheetsInNewWorkbook := 2;
WorkBook := Excel.WorkBooks.Add ;
Sheet := WorkBook.WorkSheets[1];
except
ShowMessage("Невозможно запустить MS Excel");
exit;
end;
Sheet := WorkBook.WorkSheets[2];
MainData.Grid2ExcelEx(Sheet,4,1,DBGridEh1,True);
Sheet.Cells.Columns.AutoFit;
Sheet.UsedRange.Borders.LineStyle :=1;
Sheet.UsedRange.BorderAround(1,3);
Sheet.Cells[2,1].Value:=Self.Caption;
Excel.Visible:=true;
Excel.ScreenUpdating:=true;
Sheet:=Unassigned;
WorkBook:=Unassigned;
Excel:=Unassigned;
end;
function TMainData.Grid2ExcelEx(const ExcelDoc: variant; const row,
col: integer; const Grid: TDBGridEh; const ShowTitles: Boolean):integer;
var x,y:integer;
bm:TBookmark;
BeginCol, BeginRow, i, j : integer;
RowCount, ColCount : integer;
Cell1, Cell2,ArrayData:Variant;
begin
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;
y:=row;
Grid.DataSource.DataSet.DisableControls;
bm:=Grid.DataSource.DataSet.GetBookmark;
Grid.DataSource.DataSet.First;
if ShowTitles then
for x:=0 to Grid.Columns.Count-1 do
begin
ExcelDoc.Cells[y,x+col].Value:=Grid.Columns[x].Title.Caption;
ExcelDoc.Cells[y,x+col].Font.Bold:=true;
end;
Grid.DataSource.DataSet.Last;
Grid.DataSource.DataSet.First;
RowCount:=Grid.DataSource.DataSet.RecordCount;
ColCount:=Grid.Columns.Count;
ArrayData := VarArrayCreate([1, RowCount+1, 1, ColCount], varVariant);
i:=1;
while not(Grid.DataSource.DataSet.Eof or (Grid.DataSource.DataSet.RecNo>65000)) do
begin
for J := 1 to ColCount do
begin
ArrayData[I, J] := Grid.Columns[j-1].Field.Text;
end;
inc(i);
RowCount:=i;
Grid.DataSource.DataSet.Next;
end;
Cell1 := ExcelDoc.Cells[Row+1, Col];
Cell2 := ExcelDoc.Cells[Row + RowCount-1, Col +ColCount - 1];
ExcelDoc.Range[Cell1, Cell2].NumberFormat:="0";
ExcelDoc.Range[Cell1, Cell2].Value := ArrayData;
Grid.DataSource.DataSet.GotoBookmark(bm);
Grid.DataSource.DataSet.FreeBookmark(bm);
Grid.DataSource.DataSet.EnableControls;
Screen.Cursor:=crDefault;
Result:=RowCount-1;
ArrayData:=Null;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c