用delphi把数据库中的数据导出到电子表格中.再从电子表格中导入到数据库中.
还要考虑的是:一种是某个字段成批替换,用工号控制;另一种是插入新的记录.
还要考虑的是:一种是某个字段成批替换,用工号控制;另一种是插入新的记录.
解决方案 »
- 送分100分谁知道现在流行的软件有哪些用delphi,哪些用vc++,哪些用vb,用哪种多开发的多????到底谁功能强大~!!!
- 救命啊!有没有人知道FastReport2.5在Xp下换行会截字的问题怎么解决啊?
- 哪里可以下载到Delphi7?
- ◇◆◆◆◇高分求教DCOM多线程问题◇◆◆◆◇
- 再线等待。。请问在DELPHI 中如何调用shellexecute命令
- DELPHI有移动版吗?为什么只听说C++Builder有而没有听说DELPHI有呢,未来会有吗?
- 可以把串“15/Aug/2003:00:46:16”变成日期类型吗?(
- 我在一个主表单1的一个按钮中SHOWMODAL另一个表单2,想让FORM2能直接使用FORM1中的。。。
- 如何动态向TlistView中添加数据?
- 急问用table1.batchMove(Asource:TBDEDateSet;AMode:TBatchMode):longint移动数据时提示destination must be indexed.table.我建索引后还
- 很简单的键盘钩子问题
- 返回存储过程所影响的行数?
procedure TForm12.Button1Click(Sender: TObject);
var
eclApp, WorkBook: Variant;
xlsFileName: String;
i, j: Integer;
FieldValue: String;
SaveDialog: TSaveDialog;
begin
messageDlg('在数据备份前请确保关闭所有EXCEL表!',mtWarning,[mbok],0);
SaveDialog:=TSaveDialog.Create(Application);
SaveDialog.DefaultExt:='.xls';
SaveDialog.Filter:= 'Excel文件|*.xls|所有文件|*.*';
if savedialog.Execute=true then
begin
application.ProcessMessages;
xlsFileName:= SaveDialog.FileName;
form12.Caption:='数据正在备份中.....';
try
VarClear(eclApp);
eclApp:=CreateOleObject('Excel.Application');
except
ShowMessage('您的机器里未安裝Microsoft Excel!');
Exit;
end;
try
p1.Visible:=true;
WorkBook:= eclApp.workBooks.Add;
DBGrid1.DataSource.DataSet.First;
p1.min:=0;
p1.max:=DBGrid1.DataSource.DataSet.RecordCount+DBGrid1.Columns.Count;
p1.step:=1;
for i:=0 to DBGrid1.Columns.Count - 1 do
begin
eclApp.Cells[1,i+1]:=DBGrid1.Columns.Items[i].Title.Caption;
end;
for i:=0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
for j:=0 to DBGrid1.Columns.Count-1 do
begin FieldValue:=DBGrid1.Columns[j].Field.AsString;
eclApp.Cells[i+2, j+1]:=FieldValue;
end;
p1.stepit;
DBGrid1.DataSource.DataSet.Next;
end;
if FileExists(xlsFileName) then
begin
if Application.MessageBox('文件已经存在!' + #13 + #10 +
'是否进行替换?', '提示', MB_OKCANCEL +
MB_ICONQUESTION + MB_SYSTEMMODAL) = IDOK then
begin
DeleteFile(PChar(xlsFileName));
WorkBook.Saveas(xlsFileName);
form12.Caption:='数据已成功备份';
showmessage('保存EXECL文件成功,路径为:'+xlsFileName);
WorkBook.Close;
eclApp.Quit;
eclApp:= Unassigned;
end
else
begin
form12.Caption:='数据未备份';
end;
end
else
begin
WorkBook.Saveas(xlsFileName);
form12.Caption:='数据已成功备份';
showmessage('保存EXECL文件成功,路径为:'+xlsFileName);
WorkBook.Close;
eclApp.Quit;
eclApp:= Unassigned;
end;
except
screen.Cursor:= crdefault;
form12.Caption:='数据备份出错';
ShowMessage('不能正确操作Excel文件。可能是該文件已被其他程序打开或系統错误,需要注销您的计算机。');
WorkBook.Close;
eclApp.Quit;
eclApp:=Unassigned;
end;
end;
end;
procedure TForm14.BitBtn1Click(Sender: TObject);
var ExcelApp,MyWorkBook: OLEVariant;
i: Integer;
begin
try
messageDlg('在批量增加前请关闭所有EXCEL表!',mtWarning,[mbok],0);
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
openDialog1.DefaultExt:= '.xls';
openDialog1.Filter:= 'Excel文件|*.xls|所有文件|*.*';
except
application.Messagebox('无法打开Xls文件请确认已经安装EXCEL.','',mb_OK+mb_IconStop);
Exit;
end;
if OpenDialog1.Execute then
begin
application.ProcessMessages;
form14.Caption:='数据正在批量新增中....';
MyworkBook:= ExcelApp.workBooks.Open(OpenDialog1.FileName);
try
i:=2;
begin
while trim(string(MyWorkBook.WorkSheets[1].Cells[i,1]))<>''do
begin
table1.insert;
table1.FieldByName('C1').AsString:=MyWorkBook.WorkSheets[1].Cells[i,1].Value;
table1.FieldByName('C2').AsString:=MyWorkBook.WorkSheets[1].Cells[i,2].Value;
table1.FieldByName('C3').AsString:=MyWorkBook.WorkSheets[1].Cells[i,3].Value;
table1.FieldByName('C4').AsString:=MyWorkBook.WorkSheets[1].Cells[i,4].Value;
table1.FieldByName('C5').AsString:=MyWorkBook.WorkSheets[1].Cells[i,5].Value;
table1.FieldByName('C6').AsString:=MyWorkBook.WorkSheets[1].Cells[i,6].Value;
table1.FieldByName('C7').AsString:=MyWorkBook.WorkSheets[1].Cells[i,7].Value;
table1.FieldByName('C8').AsString:=MyWorkBook.WorkSheets[1].Cells[i,8].Value;
table1.FieldByName('C9').AsString:=MyWorkBook.WorkSheets[1].Cells[i,9].Value;
table1.Post;
inc(i);
end;
form14.Caption:='数据新增成功';
end;
except
form14.Caption:='数据新增失败.';
application.Messagebox('不能正确操作Excel文件,可能是該文件已被其他程序打开或系统错误,需要注销您的计算机!','',mb_OK+mb_IconStop);
Exit;
end;
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
ExcelApp:=Unassigned;
end;
end;