ใช้ comobj, Excel97, excel2000;
//เขียนข้อมูลจาก Excel เพื่อเข้าถึงไลบรารี
PRodedure ExcelToMdb(EXLfile:string;);
var
แผ่นงาน, XLApp, สมุดงาน : ตัวแปร;
iRow,MaxRow:จำนวนเต็ม;
เริ่ม
screen.เคอร์เซอร์:=crHourGlass;
พยายาม
//สร้างวัตถุ
XLApp:=createOleObject('Excel.application');
XLApp.displayAlerts:=false;
XLApp.ScreenUpdating:=false;
XLApp.WorkBooks.Add(EXLfile);
สมุดงาน := XLApp.workbooks[1];
แผ่นงาน:=workbook.แผ่นงาน[1];
//sheet:=XLApp.WorkBooks[1].แผ่นงาน[1];
//รับจำนวนแถวสูงสุด maxRow
XLApp.ActiveCell.SpecialCells(xlLastCell).เลือก;
maxRow:=XLApp.ActiveCell.Row; //จำนวนแถวสูงสุด
//เขียนข้อมูลลงไลบรารีของ Access
ADOtable1.open;
สำหรับ iRow:=2 ถึง MaxRow ทำ
ถ้า sheet.cells[iRow,1]<>'' ดังนั้น //คำหลักไม่ว่างเปล่า
เริ่ม
ADOTable1.ผนวก;
ADOTable1.fieldByName('ID').asInteger:=
strToInt(sheet.cells[iRow,1]);
ADOTable1.fieldByName('code').asString:=sheet.cells[iRow,2];//การเข้ารหัส
ADOTable1.fieldByName('ชื่อ').asString:=sheet.cells[iRow,3];//ชื่อ
ADOtable1.post;
จบ;
ในที่สุด
ถ้าไม่ใช่ VarIsEmpty(XLApp) ให้เริ่ม //ปล่อยอ็อบเจ็กต์
XLApp.displayAlerts:=false;
XLApp.ScreenUpdating:=true;
XLApp.ออก;
จบ;
screen.เคอร์เซอร์:=crDefault;
จบ;
จบ;
//==================== วิธีแอตทริบิวต์อื่น ๆ บางอย่าง===============//
curRow:=XLApp.ActiveCell.Row;//จำนวนแถวปัจจุบัน
XLApp.displayAlerts:=false;//ว่าจะแสดงคำเตือนและข้อความเมื่อเรียกใช้แมโครหรือไม่
XLApp.ScreenUpdating:=false; // ฟังก์ชั่นอัพเดตหน้าจอ, ปรับปรุงความเร็ว;
//หลังจากเสร็จสิ้นการดำเนินการ ScreenUpdating จะถูกตั้งค่ากลับเป็น True
XLApp.run('macroName',params...)//เรียกใช้แมโคร
สมุดงาน.บันทึก;
workBook.SaveAs(AFileName,xlNormal,'','',เท็จ,เท็จ);