การใช้วิธี CreateOleBject มีข้อได้เปรียบโดยธรรมชาติสำหรับการดำเนินการเอกสาร Word โปรแกรมการดำเนินงานของเอกสาร Word
ต่อไปนี้คือการทดลองที่ฉันทำในเครื่องนี้และการกำหนดค่าซอฟต์แวร์ของเครื่องมีดังนี้:
Windows XP+Delphi7.0+Office 2003
โปรแกรมนี้ง่ายมาก โปรแกรมเมื่อโปรแกรมถูกปิด
หน่วยหลัก;
ส่วนต่อประสาน
// หากคุณต้องการใช้ CreateOleObject เพื่อใช้งานกับเอกสารคำคุณควรใช้
// รวมคำสั่ง COMOBJ และคำสั่ง WordXP ในคำสั่ง
ใช้
Windows, ข้อความ, sysutils, ตัวแปร, คลาส, กราฟิก, การควบคุม, รูปแบบ,
comobj, wordxp, กล่องโต้ตอบ, stdctrls;
พิมพ์
tform1 = คลาส (tform)
ปุ่ม 1: tbutton;
Edit1: Tedit;
ขั้นตอน button1click (ผู้ส่ง: tobject);
โพรซีเดอร์แบบฟอร์ม (ผู้ส่ง: tobject);
Procedure FormClose (ผู้ส่ง: tobject; การกระทำของ VAR: tcloseaction);
// ขั้นตอน button2click (ผู้ส่ง: tobject);
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
{ประกาศสาธารณะ}
จบ;
วาจา
Form1: TFORM1;
// ประกาศตัวแปรทั้งสองนี้เป็นตัวแปรทั่วโลก
ford: ตัวแปร;
FDOC: ตัวแปร;
การดำเนินการ
{$ r *.dfm}
ขั้นตอน tform1.button1click (ผู้ส่ง: tobject);
เริ่ม
fword.selection.typeparagraph;
fword.selection.typetext (ข้อความ: = form1.edit1.text);
จบ;
ขั้นตอน TFORM1.FormCreate (ผู้ส่ง: TOBJECT);
เริ่ม
// ก่อนสร้างวัตถุและให้พรอมต์หากมีข้อยกเว้นเกิดขึ้น
พยายาม
fword: = createOleobject ('word.application');
// การดำเนินการของโปรแกรม Word จะปรากฏขึ้นหรือไม่?
fword.visible: = false;
ยกเว้น
ShowMessage ('สร้างวัตถุคำล้มเหลว!');
ออก;
จบ;
// ก่อนสร้างหน้าใหม่ในคำเปิดแล้วพิมพ์ "สวัสดี" + Enter + "World!"
พยายาม
fdoc: = fword.documents.add;
fword.selection.typetext (text: = 'hello,');
fword.selection.typeparagraph;
fword.selection.typetext (text: = 'World!');
ยกเว้น
ใน E: ข้อยกเว้นทำ
ShowMessage (E.Message);
จบ;
จบ;
// บันทึกเนื้อหาไฟล์ไปยังไดเรกทอรีปัจจุบันเมื่อโปรแกรมถูกปิดและตั้งชื่อหลังจาก test.doc
// ปิดโปรแกรมคำในเวลาเดียวกัน
โพรซีเดอร์ TFORM1.FormClose (ผู้ส่ง: tobject; การกระทำ var: tcloseaction);
เริ่ม
fdoc.saveas (ExtractFilePath (application.exename) +'test.doc');
fword.quit;
fword: = ไม่ได้ออกแบบ;
จบ;
จบ.
นอกจากนี้การดำเนินการในไฟล์สำนักงานอื่น ๆ ค่อนข้างคล้ายกันดังนั้นฉันจะไม่เข้าไปดูรายละเอียด วิธีนี้ยังสามารถดำเนินการเอกสารที่ซับซ้อนมากขึ้นผ่านการอ้างอิงถึงมาโคร VBA ที่ซับซ้อนมากขึ้นในไฟล์ Word