技術文章 > 如何把數據庫的內容寫入到Word文檔中

如何把數據庫的內容寫入到Word文檔中

2019-07-01 08:00

文檔管理軟件,文檔管理系統,知識管理系統,檔案管理系統的技術資料:
在編程時,由于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

下面是相關代碼:
file://---------------------------------------------------------------------------
#include
#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()+"http://"+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")< ADOTable1->Next();
}
OLEObject.Exec(Procedure("StartOfDocument"));
OLEObject.Exec(Procedure("FileSaveAs")<OLEObject.Exec(Procedure("FileClose")<<1);
ShowMessage("文件已經寫入!謝謝使用!");
}
---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
this->Close();
}
---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Click(TObject *Sender)
{
Edit1->Text="";
}

体彩7星彩规则