将数据导出到excel中发现有些数据将0自动去掉了
详细情况: 导出到excel中如果数据为00123456那么在excel单元格里显示的是123456
我需要高手帮忙代码怎么设置我是用ExcelApp:= CreateOleobject('Excel.Application');
来设置导出的,请问我该怎么设置才能使的数据不要将0舍去
详细情况: 导出到excel中如果数据为00123456那么在excel单元格里显示的是123456
我需要高手帮忙代码怎么设置我是用ExcelApp:= CreateOleobject('Excel.Application');
来设置导出的,请问我该怎么设置才能使的数据不要将0舍去
免得每次都+'
它把你导出的当作整数了,设置字符串应该没有问题。
procedure TFrmMenu.ComeBackExcel(x1, y1, x2, y2: integer;FileName,WorkBookName:string;IsChange:boolean=true);
Var RepSpace : string;
i,j:integer ;
begin //更新单元格格式为文本
RepSpace:=GetRepRange(x1,y1)+':'+GetRepRange(x2,y2);
MyExcel := CreateOleObject('Excel.Application');
MyExcel.Visible := false;
MyWorkbook := MyExcel.Workbooks.Open(FileName);
MyExcel.WorkSheets[''+WorkBookName+''].Activate;
MyExcel.Range[RepSpace].Select;
if IsChange then
MyExcel.Selection.NumberFormat := '@'
else
MyExcel.Selection.NumberFormat := 'G/通用格式';
if IsChange then // 这里可以手动修改你要的值,比如将12345 修改为 00012345
begin
For i:=1 to AccountCount + 1 do
begin
For j:=1 to LanguageCount + 1 do
begin
RepSpace := MyExcel.Cells[i,j].Value;
if StrToIntDef(RepSpace,-1) <> -1 then
MyExcel.Cells[i,j].Value := RepSpace;
end;
end;
end;
MyExcel.DisplayAlerts:=false;
MyExcel.save;
MyExcel.DisplayAlerts:=true;
MyExcel.quit;
end;
//总行数 总列数 //文件名 //工作薄名
调用 ComeBackExcel(1,1,AccountCount,LanguageCount + 1,PreFileName,PreWookBookName,false);
楼主可以试一下,如果不对,别骂我呀,水平有限得很
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp: Variant;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible:=True;
ExcelApp.WorkBooks.Add;
ExcelApp.WorkSheets[1].Activate;
ExcelApp.WorkBooks[1].WorkSheets[1].range['A:A'].numberformatlocal:='@';//對A:A欄設置
end;
我问怎样代码设置Excel格式使得000123不会在excel显示成123
就是修改EXCEL单元格格式为文本就可以了
调用 ComeBackExcel(1,1,AccountCount,LanguageCount + 1,PreFileName,PreWookBookName,false);
稻草人兄,请问你这个PreWookBookName,不该叫工作薄名,应该是worksheet吧,我翻译worksheet是指工作表,不知道我有没有说错?
还有就是MyExcel.Selection.NumberFormat := 'G/通用格式';
MyExcel.Selection.NumberFormat := '@'----------这两句话看的不是很清楚.
'G/通用格式'和'@'格式集体指何格式,有啥区别????
2。你自己打开一个excel ,看一下里面的单元格格式都有哪些
‘@’ 就是文本,'G/通用格式' 就是常规
稻草人兄,我 想问下怎么在excelwork设置excel格式
好象MyExcel.Selection.NumberFormat := '@'//这句看起来好象是设置选择的格式,
我想设置某个excel文件的格式怎么设置?
RepSpace:=GetRepRange(x1,y1)+':'+GetRepRange(x2,y2); //指定EXCEL需要修改的单元格
MyExcel := CreateOleObject('Excel.Application');
MyExcel.Visible := false;
MyWorkbook := MyExcel.Workbooks.Open(FileName); //指定EXLCE工作薄
MyExcel.WorkSheets[''+WorkBookName+''].Activate;
MyExcel.Range[RepSpace].Select;
//这句话就是选中 RepSpace 范围内的所有单元格
你教了我设置RepSpace 范围内的所有单元格格式
我自己又知道了怎么设置excel workbook的格式,加上现在你又教会了设置某某范围的格式,
所以我以后想怎么设置格式就怎么设置格式
function GetRepRange(x, y: integer): string; //选中单元格,设置属性
var fX,fY:string;
begin
if y<=0 then
fX:='A';
if y<=26 then
fX := chr(64+y);
if y>26 then
fX:=chr(64+(y div 26))+chr(64+(y mod 26));
fY:=IntToStr(x);
Result:=fX+fY;
end;