5,379
社区成员
发帖
与我相关
我的任务
分享
try
if Length(FullExcelFileName) <= 0 then
begin
if SaveDialog1.Execute then
begin
LocalFileName := SaveDialog1.Files[0];
end else
begin
Result := False;
Exit;
end;
end else
LocalFileName := FullExcelFileName;
RowString := '';
AssignFile(ExcelFile, LocalFileName);
Rewrite(ExcelFile);
try
Write(ExcelFile, RowString);
for i := 0 to DGStorage.RowCount - 1 do
begin
for j := 0 to DGStorage.ColCount - 1 do
begin
if j > 0 then
begin
RowString := RowString + #9 + DGStorage.cells[j, i];
end else
begin
RowString := DGStorage.cells[j, i]; ;
end;
end;
RowString := #13 + #10 + RowString;
Write(ExcelFile, RowString);
RowString := '';
end;
finally
CloseFile(ExcelFile);
end;
Result := True;
except
Result := False;
end;
RowString '11 '#9'1113111112101245 '#9'上海金杨鞋柜 '#9'1 '#9'2013-08-04 '
时 写入EXCEL中的第二个字符由1113111112101245变成了RowString := RowString + #9 + DGStorage.cells[j, i]+'|';
xlsApp.ActiveWorkbook.ActiveSheet.cells[j,2].NumberFormatLocal:='@';
这个是不行的。要转换成ANSISTRINGxlsApp.ActiveWorkbook.ActiveSheet.cells[j,1].NumberFormatLocal:='G/通用格式';
xlsApp.ActiveWorkbook.ActiveSheet.cells[j,2].NumberFormatLocal:='@';
[/quote]
这个是通过OLE方式的。
但我现在这个方法不是用OLE(因为不清楚客户机上装的是WPS还是MSOFFICE还是OPENOFFICE还是其他的。)。
我采用的是写TXT文件方式写EXCEL。xlsApp.ActiveWorkbook.ActiveSheet.cells[j,1].NumberFormatLocal:='G/通用格式';
xlsApp.ActiveWorkbook.ActiveSheet.cells[j,2].NumberFormatLocal:='@';
RowString := RowString + #9 + VARTOSTR(DGStorage.cells[j, i]);
问题还是一样。[/quote]
了解了。这是超长了。前面须得加上 单引号。
RowString := RowString + #9 +#39+DGStorage.cells[j, i]
这样之后呢导出之后是这样的 '1113111112101245
要双击每个单元格才会显示出格式是 文本类型的1113111112101245 。
有没有解决方法啊。 RowString := RowString + #9 + VARTOSTR(DGStorage.cells[j, i]);
问题还是一样。