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

Вниз

Как сохранить БД через SaveDialog в формате Word и Excel?   Найти похожие ветки 

 
ev ©   (2004-04-09 14:18) [0]

Как сохранить БД через SaveDialog в формате Word и Excel?


 
ev ©   (2004-04-09 14:18) [0]

Как сохранить БД через SaveDialog в формате Word и Excel?


 
Fay ©   (2004-04-09 14:20) [1]

В общем случае - никак. Уточни вопрос.


 
Fay ©   (2004-04-09 14:20) [1]

В общем случае - никак. Уточни вопрос.


 
bushmen ©   (2004-04-09 14:20) [2]

Что значит "Сохранить БД" ? Сохранить выборку данных из БД или структуру?


 
bushmen ©   (2004-04-09 14:20) [2]

Что значит "Сохранить БД" ? Сохранить выборку данных из БД или структуру?


 
ev ©   (2004-04-09 14:24) [3]

Сохранить выборку по SQL запросу.


 
ev ©   (2004-04-09 14:24) [3]

Сохранить выборку по SQL запросу.


 
Карелин Артем ©   (2004-04-09 14:26) [4]

Ну как. На тему экспорта полно статей написано. Экспортируешь и вызываешь методу SaveAs. А можешь на Torry поискать компонентры для экспорта.


 
Карелин Артем ©   (2004-04-09 14:26) [4]

Ну как. На тему экспорта полно статей написано. Экспортируешь и вызываешь методу SaveAs. А можешь на Torry поискать компонентры для экспорта.


 
bushmen ©   (2004-04-09 14:27) [5]

Создаешь OLEObject, который привязан к Excel или Word и, например, в цикле кидаешь туда значения.


 
bushmen ©   (2004-04-09 14:27) [5]

Создаешь OLEObject, который привязан к Excel или Word и, например, в цикле кидаешь туда значения.


 
ev ©   (2004-04-09 14:27) [6]

А можно ссылку?


 
ev ©   (2004-04-09 14:27) [6]

А можно ссылку?


 
Карелин Артем ©   (2004-04-09 14:29) [7]

http://go.mail.ru/?qs=1&lfilter=yes&words=Delphi+Excel+%FD%EA%F1%EF%EE%F0%F2&change=2


 
Карелин Артем ©   (2004-04-09 14:29) [7]

http://go.mail.ru/?qs=1&lfilter=yes&words=Delphi+Excel+%FD%EA%F1%EF%EE%F0%F2&change=2


 
Fay ©   (2004-04-09 14:29) [8]

Я тебе свой модуль для Ёxcel-я закинул. Для Word-а под рукой нету.


 
Fay ©   (2004-04-09 14:29) [8]

Я тебе свой модуль для Ёxcel-я закинул. Для Word-а под рукой нету.


 
Fay ©   (2004-04-09 14:30) [9]

2Карелин Артем ©
8)


 
Fay ©   (2004-04-09 14:30) [9]

2Карелин Артем ©
8)


 
Карелин Артем ©   (2004-04-09 14:40) [10]

Fay ©   (09.04.04 14:30) [9]
Такой вот я.

ev ©
Чтобы не быть жлобом, пишу свой код экспорта. Сохранить думаю найдешь как самостоятельно.
var Excel,WorkBook,Sheet,Area:variant;
   i:integer;
begin
try
 Excel := CreateOleObject("Excel.Application");
 if Excel.WorkBooks.count=0 then WorkBook := Excel.WorkBooks.Add else WorkBook := Excel.WorkBooks[1];
 if WorkBook.WorkSheets.count=0 then Sheet := WorkBook.WorkSheets.Add else Sheet := WorkBook.WorkSheets[1];
except
 ShowMessage("Невозможно запустить MS Excel");
 exit;
end;
i:=MainData.Grid2ExcelEx(Sheet,3,1,DBGridEh1,True);
Sheet.Cells.Columns.AutoFit;
Sheet.Cells[i+1,1].Value:="Всего";
Sheet.Cells[i+1,3].FormulaR1C1:="=SUM(R[-"+IntToStr(i-3)+"]C:R[-1]C)";
Area:=Sheet.UsedRange;
Sheet.Cells[1,1].Value:=MainData.GetTitle1("");
Sheet.Cells[2,1].Value:=MainData.Get1DateTitle(Self.Caption,Now);
(DateEdit1.Date);
Area.Borders.LineStyle :=1;
Area.BorderAround(1,3);
Area.HorizontalAlignment:=-4131;
Sheet.UsedRange.NumberFormat:="@";
Excel.Visible:=true;
Excel.ScreenUpdating:=true;
Sheet:=Unassigned;
WorkBook:=Unassigned;
Excel:=Unassigned;

*****
function TMainData.Grid2Excel(const ExcelDoc: variant; const row,
 col: integer;const Grid: TDBGridEh):integer;
var x,y:integer;
   bm:TBookmark;
   BeginCol, BeginRow, i, j : integer;
   RowCount, ColCount : integer;
   Cell1, Cell2,ArrayData:Variant;
begin
// if Grid.DataSource.DataSet.IsEmpty then exit;
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;
y:=row;
Grid.DataSource.DataSet.DisableControls;
bm:=Grid.DataSource.DataSet.GetBookmark;
Grid.DataSource.DataSet.First;
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;
// if RowCount>16000 then RowCount:=16000;
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
    //    if not(Grid.Columns[j-1].Field.IsNull) then
    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;
// ExcelDoc.UsedRange.NumberFormat:="@";
Screen.Cursor:=crDefault;
Result:=RowCount-1;
if Result<1 then Result:=1;
end;


 
Карелин Артем ©   (2004-04-09 14:40) [10]

Fay ©   (09.04.04 14:30) [9]
Такой вот я.

ev ©
Чтобы не быть жлобом, пишу свой код экспорта. Сохранить думаю найдешь как самостоятельно.
var Excel,WorkBook,Sheet,Area:variant;
   i:integer;
begin
try
 Excel := CreateOleObject("Excel.Application");
 if Excel.WorkBooks.count=0 then WorkBook := Excel.WorkBooks.Add else WorkBook := Excel.WorkBooks[1];
 if WorkBook.WorkSheets.count=0 then Sheet := WorkBook.WorkSheets.Add else Sheet := WorkBook.WorkSheets[1];
except
 ShowMessage("Невозможно запустить MS Excel");
 exit;
end;
i:=MainData.Grid2ExcelEx(Sheet,3,1,DBGridEh1,True);
Sheet.Cells.Columns.AutoFit;
Sheet.Cells[i+1,1].Value:="Всего";
Sheet.Cells[i+1,3].FormulaR1C1:="=SUM(R[-"+IntToStr(i-3)+"]C:R[-1]C)";
Area:=Sheet.UsedRange;
Sheet.Cells[1,1].Value:=MainData.GetTitle1("");
Sheet.Cells[2,1].Value:=MainData.Get1DateTitle(Self.Caption,Now);
(DateEdit1.Date);
Area.Borders.LineStyle :=1;
Area.BorderAround(1,3);
Area.HorizontalAlignment:=-4131;
Sheet.UsedRange.NumberFormat:="@";
Excel.Visible:=true;
Excel.ScreenUpdating:=true;
Sheet:=Unassigned;
WorkBook:=Unassigned;
Excel:=Unassigned;

*****
function TMainData.Grid2Excel(const ExcelDoc: variant; const row,
 col: integer;const Grid: TDBGridEh):integer;
var x,y:integer;
   bm:TBookmark;
   BeginCol, BeginRow, i, j : integer;
   RowCount, ColCount : integer;
   Cell1, Cell2,ArrayData:Variant;
begin
// if Grid.DataSource.DataSet.IsEmpty then exit;
Screen.Cursor:=crHourGlass;
Application.ProcessMessages;
y:=row;
Grid.DataSource.DataSet.DisableControls;
bm:=Grid.DataSource.DataSet.GetBookmark;
Grid.DataSource.DataSet.First;
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;
// if RowCount>16000 then RowCount:=16000;
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
    //    if not(Grid.Columns[j-1].Field.IsNull) then
    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;
// ExcelDoc.UsedRange.NumberFormat:="@";
Screen.Cursor:=crDefault;
Result:=RowCount-1;
if Result<1 then Result:=1;
end;



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

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

Наверх




Память: 0.51 MB
Время: 0.078 c
1-1082532993
Алексей_
2004-04-21 11:36
2004.05.09
Остановка обработки в главной форме


3-1081795892
Ну вобщем это мой ник
2004-04-12 22:51
2004.05.09
Господа, Простите мою наглость, не могли ли бы вы накидать ссылок


1-1082602945
ORMADA
2004-04-22 07:02
2004.05.09
TCustomPanel


1-1082522997
Denis_Ac
2004-04-21 08:49
2004.05.09
Указатели на TImage


14-1082191531
zaxxx
2004-04-17 12:45
2004.05.09
Кто-нить знает нормальные сайты по Дельфи?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский