如何从excel中读取数据,并保存到文本中? 开始学习delphi想做一个小demo1.从保存的excel中读取到一条一条记录(可以显示在窗体)2.把读到的记录保存到文本中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;type TfrmMain = class(TForm) btnCreateOLE: TButton; btnFreeOLE: TButton; btnGetData: TButton; lstbxSheetData: TListBox; procedure btnCreateOLEClick(Sender: TObject); procedure btnFreeOLEClick(Sender: TObject); procedure btnGetDataClick(Sender: TObject); private MsExcel: Variant; MsExcelWorkBook: Variant; MsExcelWorkSheet: Variant; public { Public declarations } end;var frmMain: TfrmMain;implementationuses ComObj;{$R *.DFM}procedure TfrmMain.btnCreateOLEClick(Sender: TObject);var i: integer;begin try MsExcel := CreateOleObject('Excel.Application.8'); MsExcelWorkBook := MsExcel.WorkBooks.Add; MsExcelWorkSheet := MsExcel.WorkSheets.Add; except MessageDlg('Can nott creat Excel 97 !', mtWarning, [mbOK], 0); exit; end; MsExcel.Visible := True; for i := 1 to 10 do MsExcelWorkSheet.Range['A' + IntToStr(i)].Value := i * i; try MsExcelWorkSheet.SaveAs(ExtractFilePath(Application.EXEName) + 'TEMP.XLS'); except MessageDlg('Can not save as TEMP.XLS!', mtInformation, [mbOK], 0); end;end;procedure TfrmMain.btnFreeOLEClick(Sender: TObject);begin MsExcel.Quit;end;procedure TfrmMain.btnGetDataClick(Sender: TObject);var i: integer;begin lstbxSheetData.Items.Clear; try for i := 1 to 10 do lstbxSheetData.Items.Add(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value); except MessageDlg('Can not open Excel Sheet!', mtWarning, [mbOK], 0); end;end;end. 读取excel中记录的过程需要调用两个单元文件Excel2000,ComObj(当然Excel的单元文件看版本来定),如果是存储在容器中那么还需要用到OleServer,我这样取过一次:先设两个变体类型的变量:ExcelApp,ExcelSheet : Variant;主程序中可以通过opendialog来选取Excel文件,然后创建 ExcelApp:=CreateOleObject('Excel.Application'); Excelapp.WorkBooks.Open(opendialog1.FileName);这样就可以得到字符串型的变量 string1 := ExcelApp.WorkSheets[Excel表的页].cells[Excel表的行,Excel表的列];至于存储到文本中很简单就是调用savetofile()方法就可以了,如果是有多个可以先用一个tstringlist的变量利用Add()方法存起来再一起存。 请问怎么知道excel表格中总共有多少项!就是几个格子里面有值! 请问如何知道Excel里面有多少页,每个页里面有多少行,每行有多少列有值! 建议你直接调用ExcelApp.savetofile就可以了,不用那么麻烦的:) 一个SQL统计语句 请问delphi 如何用动态链接库方式编译,用了动态链接库有没有什么好处? Fastreport 指定印表機 请问如何从存储过程返回一个数据集出来? 高手指教,想了解COM技术? 谁能告诉我 Delphi5的程序升级到Delphi6时遇到的问题(百分相酬) 小小送分问题 那个网站有用Delphi+MapInfo/MapX开发Gis资料 DELPHI高手请留下QQ,或E-MAIL(尤其是用DELPHI开发网络程序的) 动太库的参数为unsigned char * 类型时,在DELPHI 中用什么类型来代替 为什么这样的鼠标钩子只能对调用窗口有用?(附源码)
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;type
TfrmMain = class(TForm)
btnCreateOLE: TButton;
btnFreeOLE: TButton;
btnGetData: TButton;
lstbxSheetData: TListBox;
procedure btnCreateOLEClick(Sender: TObject);
procedure btnFreeOLEClick(Sender: TObject);
procedure btnGetDataClick(Sender: TObject);
private
MsExcel: Variant;
MsExcelWorkBook: Variant;
MsExcelWorkSheet: Variant;
public
{ Public declarations }
end;var
frmMain: TfrmMain;implementationuses ComObj;{$R *.DFM}procedure TfrmMain.btnCreateOLEClick(Sender: TObject);
var
i: integer;
begin
try
MsExcel := CreateOleObject('Excel.Application.8');
MsExcelWorkBook := MsExcel.WorkBooks.Add;
MsExcelWorkSheet := MsExcel.WorkSheets.Add;
except
MessageDlg('Can nott creat Excel 97 !', mtWarning, [mbOK], 0);
exit;
end; MsExcel.Visible := True;
for i := 1 to 10 do
MsExcelWorkSheet.Range['A' + IntToStr(i)].Value := i * i; try
MsExcelWorkSheet.SaveAs(ExtractFilePath(Application.EXEName) + 'TEMP.XLS');
except
MessageDlg('Can not save as TEMP.XLS!', mtInformation, [mbOK], 0);
end;
end;procedure TfrmMain.btnFreeOLEClick(Sender: TObject);
begin
MsExcel.Quit;
end;procedure TfrmMain.btnGetDataClick(Sender: TObject);
var
i: integer;
begin
lstbxSheetData.Items.Clear;
try
for i := 1 to 10 do
lstbxSheetData.Items.Add(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value); except
MessageDlg('Can not open Excel Sheet!', mtWarning, [mbOK], 0);
end;end;end.
先设两个变体类型的变量:ExcelApp,ExcelSheet : Variant;
主程序中可以通过opendialog来选取Excel文件,然后创建
ExcelApp:=CreateOleObject('Excel.Application');
Excelapp.WorkBooks.Open(opendialog1.FileName);
这样就可以得到字符串型的变量
string1 := ExcelApp.WorkSheets[Excel表的页].cells[Excel表的行,Excel表的列];至于存储到文本中很简单就是调用savetofile()方法就可以了,如果是有多个可以先用一个tstringlist的变量利用Add()方法存起来再一起存。