程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何把數據庫的內容寫入到Word文檔中?(胡廣濤)

如何把數據庫的內容寫入到Word文檔中?(胡廣濤)

編輯:Delphi

  在編程時,由於Microsoft Word的編輯功能非常強大,所以我們經常希望將一些數據保存為WORD文檔,以便我們專業編輯。
   在保存為Word文檔時,我們可以通過OLE,但經常遇到把真正的Word編輯界面調入到了程序中,以使得程序界面混亂。還有,普通的調用Word的方法都必須指定Word可執行文件的絕對地址,由於很多用戶安裝Word的路徑都不一致,故,我們經常遇到調用錯誤的問題,能不能有一種方法調用Word不將它顯示出來,與版本、安裝路徑無關呢?答案是肯定的。
   下面,我就來做一個小程序給大家演示一下,只起到一個拋磚引玉的作用。僅供朋友們參考。
  首先,我們建立一個Access2000數據庫data.mdb,在庫中我們建立一個表userdata,裡面有“工號”、“姓名”、“性別”、“部門”四個字段,都是字符型的,再輸入一些數據,我們再建立一個窗體Form1,在Form1中,放置以下控件:
控件名稱 屬性 值 說明 Tlabel1 Caption "請輸入文件名" TEdit1 Name "" 用來輸入文件名,帶擴展名的 TButton1 Caption "保存" TButton2 Caption "退出" ADOTable1 Active

ConnectionString

TableName True
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Persist Security Info=False
userdata

下面是相關代碼:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant OLEObject;
AnsiString dataword;
if(Trim(Edit1->Text)=="")
{
ShowMessage("請輸入文件名");
return;
}
String currentPath=GetCurrentDir()+"//"+Trim(Edit1->Text);
OLEObject=CreateOleObject("Word.Basic");
OLEObject.Exec(Procedure("FileNew"));
OLEObject.Exec(Procedure("EndOfDocument"));
ADOTable1->First();
while(ADOTable1->Eof!=True)
{
  dataword=ADOTable1->FieldValues["工號"]+ADOTable1->FieldValues["姓名"]+ADOTable1->FieldValues["性別"]+ADOTable1->FieldValues["部門"];
  OLEObject.Exec(Procedure("Insert")<<dataword);
  ADOTable1->Next();
}
OLEObject.Exec(Procedure("StartOfDocument"));
OLEObject.Exec(Procedure("FileSaveAs")<<currentPath);
OLEObject.Exec(Procedure("FileClose")<<1);
ShowMessage("文件已經寫入!謝謝使用!");
}
---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
this->Close();
}
---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Click(TObject *Sender)
{
Edit1->Text="";       
}
---------------------------------------------------------------------------
大家如果有什麼更好的建議和意見請與我聯系。([email protected]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved