求一段能将 excel 转换成txt的代码 csv也可以 要支持多个工作表转换的。。
try
QryCom.Close;
QryCom.Connection :=cnn;
cnn.Connected := False;
cnn.ConnectionString := Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Excel 8.0', [path]);
cnn.Connected := True;
cnn.GetTableNames(TableList,True); for K :=0 to TableList.Count-1 do
begin
QryCom.SQL.Text := Format('select * from [%s]',[TableList[K]]);
if Pos(UpperCase('Print_Titles'),UpperCase(QryCom.SQL.Text)) >0 then
continue;
QryCom.Open;
// QryCom.SaveToFile('D:\1111.csv');
QryCom.First;
while not QryCom.Eof do
begin
for I := 0 to QryCom.Fields.Count -1 do
begin
sStr := sStr + QryCom.Fields[I].AsString;
end;
QryCom.Next;
end;
Memo2.Text :=sStr; end;
except
Memo1.Lines.Add(Path);
end;
这是我自己的写能实现,但是速度实在是无法忍受。。
求更好的方法。
try
QryCom.Close;
QryCom.Connection :=cnn;
cnn.Connected := False;
cnn.ConnectionString := Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Excel 8.0', [path]);
cnn.Connected := True;
cnn.GetTableNames(TableList,True); for K :=0 to TableList.Count-1 do
begin
QryCom.SQL.Text := Format('select * from [%s]',[TableList[K]]);
if Pos(UpperCase('Print_Titles'),UpperCase(QryCom.SQL.Text)) >0 then
continue;
QryCom.Open;
// QryCom.SaveToFile('D:\1111.csv');
QryCom.First;
while not QryCom.Eof do
begin
for I := 0 to QryCom.Fields.Count -1 do
begin
sStr := sStr + QryCom.Fields[I].AsString;
end;
QryCom.Next;
end;
Memo2.Text :=sStr; end;
except
Memo1.Lines.Add(Path);
end;
这是我自己的写能实现,但是速度实在是无法忍受。。
求更好的方法。
ActiveWorkbook.SaveAs Filename:= "c:\test.csv",FileFormat:= xlCSV, CreateBackup:=False;
翻译成Delphi即可,这个是直接把Excel另存为.csv格式的文件。
ActiveWorkbook.SaveAs Filename:= "c:\test.csv",FileFormat:= xlCSV, CreateBackup:=False;
翻译成Delphi即可,这个是直接把Excel另存为.csv格式的文件。貌似在delphi 中只能保存活动表页的内容。我要转换的excel很多都是多个工作表的,有点难度。