Delphi 导入 Excel 到数据库是一个常见的数据处理任务,涉及多个基础概念和技术点。以下是对这一过程的详细解答:
.xls
或 .xlsx
格式保存,其中包含表格数据。TExcelReader
或使用 OLEDB 连接。以下是一个简单的 Delphi 示例代码,演示如何使用 ADO 连接和读取 Excel 文件,并将数据导入到数据库:
uses
ADODB, ComObj;
procedure ImportExcelToDatabase(const ExcelFilePath, DatabaseConnectionString: string);
var
ExcelConnection: TADOConnection;
ExcelQuery: TADOQuery;
DatabaseConnection: TADOConnection;
DatabaseQuery: TADOQuery;
begin
// 连接 Excel 文件
ExcelConnection := TADOConnection.Create(nil);
try
ExcelConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExcelFilePath + ';Extended Properties="Excel 8.0;HDR=YES;"';
ExcelConnection.Open;
// 创建并执行查询
ExcelQuery := TADOQuery.Create(nil);
try
ExcelQuery.Connection := ExcelConnection;
ExcelQuery.SQL.Text := 'SELECT * FROM [Sheet1$]';
ExcelQuery.Open;
// 连接数据库
DatabaseConnection := TADOConnection.Create(nil);
try
DatabaseConnection.ConnectionString := DatabaseConnectionString;
DatabaseConnection.Open;
// 创建并执行数据库插入操作
DatabaseQuery := TADOQuery.Create(nil);
try
DatabaseQuery.Connection := DatabaseConnection;
while not ExcelQuery.Eof do
begin
DatabaseQuery.SQL.Text := 'INSERT INTO YourTable (Column1, Column2) VALUES (:Value1, :Value2)';
DatabaseQuery.Parameters.ParamByName('Value1').Value := ExcelQuery.FieldByName('Column1').Value;
DatabaseQuery.Parameters.ParamByName('Value2').Value := ExcelQuery.FieldByName('Column2').Value;
DatabaseQuery.ExecSQL;
ExcelQuery.Next;
end;
finally
DatabaseQuery.Free;
DatabaseConnection.Close;
DatabaseConnection.Free;
end;
except
on E: Exception do
ShowMessage('数据库连接错误: ' + E.Message);
end;
finally
ExcelQuery.Close;
ExcelQuery.Free;
ExcelConnection.Close;
ExcelConnection.Free;
end;
except
on E: Exception do
ShowMessage('Excel 连接错误: ' + E.Message);
end;
end;
请注意,上述示例代码中的数据库连接字符串和表名需要根据实际情况进行修改。同时,确保 Delphi 环境中已安装并配置好相关的数据库驱动和组件。
领取专属 10元无门槛券
手把手带您无忧上云