none
Problème numeric convertit en texte lorsque j'exporte vers Excel en OLEDB RRS feed

  • Question

  • Bonjour,

    J'essaie d'exporter une table vers Excel tout se passe bien mais les colonnes numériques sont converties en texte et j'ai beau essayer tous les formats lorsque je crée mon fichier, rien n'y fait ,les cellules restent toujours en standard :

        
     DECLARE @objExcel INT,@hr INT,@command VARCHAR(255),@strErrorMessage VARCHAR(255),@objErrorObject INT,@objConnection INT,@bucket INT,
          @DDL VARCHAR(2000),@DataSource VARCHAR(100),@Worksheet VARCHAR(100)=NULL,@ConnectionString VARCHAR(255), @document int
    Select @ConnectionString = 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%DataSource;Extended Properties="Excel 12.0 Xml"', 
          @DDL='Create table Feuil1(No_id int, valeur decimal(18,2))', 
          @DataSource ='d:\testExport.xlsx' 
    SELECT @ConnectionString = REPLACE (@ConnectionString, '%DataSource', @DataSource)
    print @ConnectionString
    EXEC @hr = sp_OACreate 'ADODB.Connection', @objconnection OUT
    print @hr
    EXEC @hr=sp_OASetProperty @objconnection,'ConnectionString', @ConnectionString
    print @hr
    print @objconnection
    EXEC @hr=sp_OAMethod @objconnection, 'Open'
    print @hr 
    print @DDL
    EXEC @hr=sp_OAMethod @objconnection, 'Execute',@Bucket out , @DDL
    print @hr
    exec sp_OADestroy @objconnection
    
    declare @cmd nvarchar(4000)
    set @cmd='
    INSERT INTO OPENDATASOURCE ( 
     ''Microsoft.ACE.OLEDB.12.0'', 
     ''Data Source=d:\testExport.xlsx;Extended Properties="Excel 12.0 Xml"'')...[Feuil1$] 
       SELECT 1,2.00'
       print @cmd
       exec (@cmd)
    
    
    

    résultat dans Excel :

    C'est à devenir fou, Help please!

    mardi 12 juin 2018 13:36