我数据库中数据为字符型,是以'0'开头的,如:'0001',但是导入到excel中去之后就被excel认为是数字型
导入后成为1,请问如何使excel将其认为是字符型
导入语句为:
sheet.cells(row,col):=dbgrid.Columns[fieldindex].Field.asstring
谢谢大家

解决方案 »

  1.   

    ColumnRange.Columns[1].numberformatlocal:='@';
    将第一列的单元格式设为文本型。
    再比如:
    excelworksheet1.Cells.Item[1,2].numberformatlocal:='@';
    第1行2列的单元格式设为文本型,用SERVER组件
      

  2.   

    看看代码例子
    ---------------
    uses
       ComObj ;
    var
        varApp             : OleVariant ;
        varSheet           : OleVariant ;function  ExportTableToExcel( queryName : TQuery ) : Boolean ;
    var
        i,j : Integer ;
    begin
        Result:=False ;
        if queryName.Active=False then
        begin
            ShowMessage('还未有结果数据!');
            Exit ;
        end;
        try
           varSheet:=CreateOleObject('Excel.Sheet');
        except
           ShowMessage('未发现安装了 Excel !');
           Exit ;
        end;
        varApp:=varSheet.Application ;
        varSheet:=varApp.ActiveSheet ;
        queryName.First ;
        if not queryName.eof then
        begin
            queryName.DisableControls ;
            for i:=0 to queryName.FieldCount-1 do
            begin
                varSheet.Cells[1,i+1].Value:=queryName.Fields[i].FieldName ;
                //修正Excel 中数字字符自动变为数字问题
                if queryName.Fields[i].DataType=ftString then
                begin
                    varSheet.Columns[i+1].NumberFormatLocal:= '@';
                end;
            end;
            queryName.First ;
            j:=2 ;
            while not queryName.Eof do
            begin
                for i:=0 to queryName.FieldCount-1 do
                begin
                    if not queryName.Fields[i].IsNull  then
                        varSheet.Cells[j,i+1]:=queryName.Fields[i].DisplayText ;
                end;
                j:=j+1 ;
                queryName.Next ;
            end;
            queryName.EnableControls ;
        end;
        varSheet.Cells.Columns.AutoFit;    varApp.Visible:=true;
        Result:=True ;
    end;
      

  3.   

    sheet.cells(row,col):=''''+dbgrid.Columns[fieldindex].Field.asstring