Главная страница
    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.028 c
7-1080200894
neodiX
2004-03-25 10:48
2004.05.09
Как из сервиса определить залогинился юзер или нет?


1-1082834091
Shopot
2004-04-24 23:14
2004.05.09
Динамический объект.


1-1082547202
CbIH
2004-04-21 15:33
2004.05.09
OpenDialog - вид по умолчанию


7-1079895775
Leviathan
2004-03-21 22:02
2004.05.09
AntiFreeze цикла


6-1079823666
Автор
2004-03-21 02:01
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский