我有一文本文件,要求每3行转换成excel一行,eg:
txt内容:
我
爱
编程
我
是
程序员
要求的excel格式:
我 爱 编程
我 是 程序员
我的文本文件可能很大(10M以上),我写了一个算法很慢,求一快速的算法,分数不够再加,只要能够达到我要求的时间。
txt内容:
我
爱
编程
我
是
程序员
要求的excel格式:
我 爱 编程
我 是 程序员
我的文本文件可能很大(10M以上),我写了一个算法很慢,求一快速的算法,分数不够再加,只要能够达到我要求的时间。
读文本文件速度肯定没问题,写excel如果慢的话,屏蔽Excel.Visible:=true;试试uses ComObj;procedure TForm1.Button1Click(Sender: TObject);
var
Excel:Variant;
f:TextFile;
i,j:integer;
s:string;
begin
if not FileExists('D:\1.txt') then exit;
AssignFile(f,'D:\1.txt');
Reset(f);
Excel:=CreateOleObject('Excel.Application');
Excel.workbooks.open('D:\test.xls');
Excel.worksheets[1].activate;
Excel.Visible:=true;
i:=1;
j:=0;
while not eof(f) do
begin
Readln(f,s);
inc(j);
Excel.cells[i,j].value:=s;
if j=3 then
begin
inc(i);
j:=0;
end;
end;
Excel.ActiveWorkBook.Save;
Excel.workbooks.close;
//Excel.Disconnect;
Excel.quit;
ShowMessage('ok');
end;
CloseFile(f);加在showmessage前面
2.先把文本文件做格式化处理,把每三行变成一行的文本文件,然后用ADO把Text文件当作数据表处理,导入到Excel里;