如题
解决方案 »
- 如何减少delphi程序对cpu的使用
- 请高手来看一下这个接口定义是否正确
- 一个程序查询
- dephi 中vf dbf 如何导入?,客户端没有dbf
- 在treeview中怎么显示每个项的鼠标onmouseover提示?
- 求jedi-directx7头文件,那里有的下载,我的EMAIL:[email protected],QQ:52943597
- 呜呜。。救命啊。。请问怎么在报表的预览页面加个鼠标双击事件,或按钮时间呢?
- 我在做一个通信程序的时候,需要使用DBGrid或Grid控件,将服务器端传来的信息显示
- 有什么好方法处理TThread对象的异常?
- 怎样在报表中设置qrexp来统计一个表的某字段?
- 如何获得系统的时间
- NMFTP 组件问题
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
pc_i:integer;
xlapp,sheet: variant;
WBK: OleVariant;
begin
xlapp := createoleobject('excel.application');
if Trim(Edit1.Text)='' then
begin
Application.MessageBox('文件名不能为空','警告',MB_OK);
Exit;
end;
WBK := xlapp.workbooks.Open(Edit1.Text);
sheet := xlapp.workbooks[1].worksheets['sheet1'];
pc_i:=1;
Edit2.Text := sheet.cells[pc_i,1]; //写入的话用 sheet.cells[pc_i,1] := Edit2.Text;
WBK.Close(SaveChanges := True);
xlapp.Quit;
end;
这是读出Excel文件的代码,读出后你写到txt文件中就好了
2 用sql语句
INSERT INTO table1
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
3 在delphi中利用office vba函数写循环
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL应用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);
//打开指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
//Excelworksheet1与Excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
//将第一条数据赋给编辑框
exit;
end;
end;
end;
1 调用你可以直接用xp_cmdshell运行bcp dtsrun等
2 office的vba操作接口你可以看看以前的帖子,ms的 office网站上也有,
----
我的代理有问题,不能发长的帖子,见谅
procedure Tfrm_LoadData.DataLoad;
var
XlsApp,XlsSheet: Variant;
I,J,k,Row,Col,sRow,sCol: integer;
ExcelFile: string;
TmpString: String;
begin
ads_loaddata.Close;
ads_loaddata.CommandText := 'Select * from '+trim(utable);
ads_loaddata.Open;
g_col:=ads_loaddata.FieldCount;
ExcelFile := Trim(Edit1.Text);
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open(ExcelFile);
Row:=XlsApp.workbooks[1].worksheets[1].UsedRange.Rows.Count;
progressbar1.Step := 1;
progressbar1.Position := 0;
progressbar1.Max := row;
Col := g_col;
sRow := 1;
sCol := 1;
for I := sRow to (sRow + Row) - 1 do
begin
k := 0;
TmpString := '';
ADS_LoadData.open;
ADS_LoadData.Append;
for J := sCol to (sCol + Col) - 1 do
begin
TmpString := XlsSheet.ActiveSheet.Cells[I,J].Text;
ADS_LoadData.Fields[k].AsString := TmpString;
k := k + 1;
end;
try
ADS_LoadData.Post;
progressbar1.StepIt;
except
showmessage('¼Æ¾Ú¾É¤J¤¤Â_,¦³¥i¯à¸ê®Æ­«´_©Îªíµ²ºcÉOExcelÀÉ®×µ²ºc¤£¦P!');
ads_loaddata.Cancel;
abort;
end;
end;
Application.MessageBox('¼Æ¾Ú±qExcel¾É¤J¼Æ¾Úªí¦¨¥\!','´£¥Ü',mb_OK + MB_DEFBUTTON1);
except
Application.MessageBox('¼Æ¾Ú±qExcel¾É¤J¼Æ¾Úªí¤£¦¨¥\!','¿ù»~',mb_OK + MB_DEFBUTTON1);
end;
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;