Главная страница
    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.035 c
14-1082382689
Дадиц
2004-04-19 17:51
2004.05.09
Что такое SSDD?


6-1079099372
ASMiD
2004-03-12 16:49
2004.05.09
Как связать два компа через I-net


1-1082964421
avgur
2004-04-26 11:27
2004.05.09
Вопрос о MsAgent


14-1082573409
jack128
2004-04-21 22:50
2004.05.09
Глюк - не глюк, но что то не то в TComponent


3-1081941984
Flashas
2004-04-14 15:26
2004.05.09
S DBgrid..





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