请问如何读取一个文件夹中的所有Excel表格中的数据? ( 积分: 100 )

  • 主题发起人 主题发起人 panwen
  • 开始时间 开始时间
P

panwen

Unregistered / Unconfirmed
GUEST, unregistred user!
我想读取文件夹中所有的Excel表格某个固定单元格中的数据,并将这些数据保存到一个新的Excel表格中,高手帮忙啊~~
 
1:遍历所有Excel文档,用FindFirstFile,FindClose,FindNextFile函数实现;
2:用循环,逐个获取所需要取得的单元格数据,存入自定义的结构或数组;
3:将数组内容填充入新表格。
2,3两步用到控件面板Server页的TExcelApplication等组件,具体用法网上搜索,别等着别人喂饭!
 
以前做试验时, 写的几行读excel 的程序. 给你参考一下吧

ExcelApplication.Connect;
ExcelApplication.Workbooks.Open(Edit1.Text, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, 0);
//ExcelApplication.Visible[0] := True;
ExcelWorkbook.ConnectTo(ExcelApplication.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接
Memo1.Lines.Add('WorkBook Count = ' + IntToStr(ExcelApplication.Workbooks.Count));
AssignFile(fp, ExtractFilePath(ParamStr(0)) + '数据.Txt');
if FileExists(ExtractFilePath(ParamStr(0)) + '数据.Txt') then
Append(fp)
else
ReWrite(fp);
For i:=1 to ExcelApplication.Worksheets.Count do
begin
sheet := ExcelApplication.Worksheets.Item as _worksheet;
row := 1;
repeat
szLine := Format('2006-12-%s,%s,%s-%s', [
Sheet.Cells.Item[row, 1],
Sheet.Cells.Item[row, 2],
Sheet.Cells.Item[row, 3],
Sheet.Cells.Item[row, 4]]);
szLine := Trim(szLine);
if szLine = '2006-12-,,-' then
Break
else
WriteLn(fp, szLine);
row := row + 1;
until False;
end;
CloseFile(fp);
try
ExcelApplication.Quit;
ExcelWorksheet.Disconnect;
ExcelWorkbook.Disconnect;
ExcelApplication.Disconnect;
except
end;
 
谢谢了,我试试
 
后退
顶部