求excel 导入sql 工具源码

hglhyy 2016-06-29 11:46:43
求excel 导入sql 工具源码,

平时有些工作是表格的,做起来麻烦,还是放在数据库里方便操作。。
分不够再加
...全文
889 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbdzjx 2016-07-08
  • 打赏
  • 举报
回复
如果数据库是sql server,那处理好excel的格式,用ssms直接往里导。
天行归来 2016-07-08
  • 打赏
  • 举报
回复
用AdoDataSet控件,可以打开excel文件的,接下来操作就是记录集的操作了。 连接串是: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1";Persist Security Info=False
lyhoo163 2016-06-30
  • 打赏
  • 举报
回复
这是数据库的基本操作:
1、通过XLSReadWriteII4控件打开读取EXCEL表,并数据读取数据。读取时指定行、列的Cell。
2、将读入数组。
2、将数组通过SQL语句写入(插入DBGrid)指定表中。

代码大约如此,提示:

for Row := 6 to XLS.Sheets[0].LastRow-1 do
begin
First:=Row;
if (XLS.Sheets[0].AsString[0,First]<>'') and (XLS.Sheets[0].AsString[1,First]<>'') and
(XLS.Sheets[0].AsString[1,First]<>'') and (XLS.Sheets[0].AsString[17,First]='0') then // 正票
begin
if First=(XLS.Sheets[0].LastRow-1)
then begin
Last:=First;
end
else begin
if (XLS.Sheets[0].AsString[0,First+1]<>'') and (XLS.Sheets[0].AsString[1,First+1]<>'') and
(XLS.Sheets[0].AsString[1,First+1]<>'') and (XLS.Sheets[0].AsString[17,First+1]='0')
then begin
Last:=First;
end
else begin
Last:=First;
repeat
Last:=Last+1;
until (XLS.Sheets[0].AsString[9,Last]='小计') or (Last>=XLS.Sheets[0].LastRow-1);
end;
end;
A[Top,0]:=XLS.Sheets[0].AsString[6,First];
A[Top,1]:=XLS.Sheets[0].AsString[0,First];
A[Top,2]:=XLS.Sheets[0].AsString[1,First];
A[Top,3]:=XLS.Sheets[0].AsString[2,First];
A[Top,4]:=XLS.Sheets[0].AsString[9,Last]; // 小计
.....
Top:=Top+1;
end;
end;
XLS.Free;
DateTimetoString(ID1,'yyyyMMddnnss',Now);
for i:=0 to Top-1 do
begin
ID:=ID1+IntToStr(100+i);
with DBGridEh1.DataSource.DataSet do
begin
Append;
j:=Pos(' ',A[i,0]);
S:=Copy(A[i,0],1,J-1);
dDate:=StrToDate(S);
FieldByName('日期').asString:=FormatdateTime('yyyy-MM-dd',dDate);
FieldByName('发票代码').asString:=A[i,1];
FieldByName('发票号码').asString:=A[i,2];
FieldByName('受票人名称').asString:=A[i,3];
else FieldByName('收入方式').asString:='现金';
FieldByName('开票人').asString:=A[i,30];
FieldByName('项目1').asString:=A[i,6];
FieldByName('金额1').asString:=A[i,7];
FieldByName('项目2').asString:=A[i,8];
FieldByName('金额2').asString:=A[i,9];
FieldByName('ID').asString:=ID;
Post;
end;
end;


2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧