Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Export file excel

  1. #1
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296

    Export file excel

    Buongiorno e buon dopovacanze... queste ultime finiscono, i problemi mai.

    Dunque ho un quesito (per non chiamarlo sempre problema): devo fare l'export di un foglio excel da una datagrid. In questo datagrid ci sono alcuni campi numerici (campi PIN) che sono più lunghi di 12 caratteri, dopo l'export, nel foglio excel questi dati vengono visualizzati con notazione scientifica (es: 1,23457E+14) mentre dovrebbero essere visualizzati per esteso (es: 123456789012345). Se sul foglio finale imposto la/le colonne incriminate come numeriche senza virgola, risolvo il problema, ma dovrei risolverlo alla fonte.
    Avete idea di come agire per eliminare questo inconveniente?

    Grazie mille

    Leonardo

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: non è la soluzione, ma da quel che mi posso ricordare, il numero 12345678901234567890 (20 cifre) si può memorizzare in excel facendolo precedere dall'apostrofo, così viene considerato numero in formato testo


    '12345678901234567890

    io proverei così in attesa di meglio, si intende
    Pietro

  3. #3
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da pietro09
    :master: non è la soluzione, ma da quel che mi posso ricordare, il numero 12345678901234567890 (20 cifre) si può memorizzare in excel facendolo precedere dall'apostrofo, così viene considerato numero in formato testo


    '12345678901234567890

    io proverei così in attesa di meglio, si intende

    Beh! in attesa di una soluzione migliore potrebbe andarmi anche bene, solo che devo agire al momento del caricamento della DataTable (prima che questa venga passata alla classe che effettua l'export) inserendo dentro il numero con davanti l'apice. Il guaio è che una volta esportato questo nuovo numero (con l'apice) viene visualizzato nel foglio excel compreso di apice. Allora mi sono detto : provo ad inserire un blank davanti al numero, e lui mi ha sputato in un occhio perchè non interpreta il blank e il numero gli rimane esattamente com'era (senza blank).

    Comunque vedo che nonostante le vacanze sei sempre "in tiro" e pronto a dare dritte.
    Grazie Piè sei una miniera di idee anche quando non ce le hai

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da otello
    Grazie Piè sei una miniera di idee anche quando non ce le hai
    non ho idee perchè sono appena tornato dalle vacanze e sono subito cominciate le rogne

    Pietro

  5. #5
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da pietro09
    non ho idee perchè sono appena tornato dalle vacanze e sono subito cominciate le rogne

    T'è piaciuta la vacanza? E mo beccate le rogne ... (Miiiiii come sono cattivo )

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da otello
    T'è piaciuta la vacanza? E mo beccate le rogne ... (Miiiiii come sono cattivo )
    l'ultima settimana, pioggia, vento e freddo; oggi mare piatto

    ps. e va bene, me lo sarò meritato
    Pietro

  7. #7
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da otello
    T'è piaciuta la vacanza? E mo beccate le rogne ... (Miiiiii come sono cattivo )

    Il tuo nick dovrebbe essere "fantozzi" ... anche tu hai la nuvoletta sopra

    Comunque non deprimerti, mancano solo 11 mesi alla prossima estate.

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da otello
    e lui mi ha sputato in un occhio

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Qui potete vedere un mio amico in Spagna. (quello in acqua )
    Se volete vi faccio conoscere babbo e mamma





    ps. credo che si possa risolvere con gli stili. Per esempio, prova ad incollare questo

    codice:
    <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
    
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    <meta name=ProgId content=Excel.Sheet>
    <meta name=Generator content="Microsoft Excel 10">
    <link rel=File-List href="Cartel1_file/filelist.xml">
    <link rel=Edit-Time-Data href="Cartel1_file/editdata.mso">
    <link rel=OLE-Object-Data href="Cartel1_file/oledata.mso">
    <!--[if gte mso 9]><xml>
     <o:DocumentProperties>
      <o:Author></o:Author>
      <o:LastAuthor></o:LastAuthor>
      <o:Created>2007-08-27T17:58:30Z</o:Created>
      <o:LastSaved>2007-08-27T18:35:03Z</o:LastSaved>
      <o:Company></o:Company>
      <o:Version>10.6830</o:Version>
     </o:DocumentProperties>
     <o:OfficeDocumentSettings>
      <o:DownloadComponents/>
      <o:LocationOfComponents HRef="file:///\\"/>
     </o:OfficeDocumentSettings>
    </xml><![endif]-->
    <style>
    <!--table
    	{mso-displayed-decimal-separator:"\,";
    	mso-displayed-thousand-separator:"\.";}
    @page
    	{margin:.98in .79in .98in .79in;
    	mso-header-margin:.5in;
    	mso-footer-margin:.5in;}
    tr
    	{mso-height-source:auto;}
    col
    	{mso-width-source:auto;}
    br
    	{mso-data-placement:same-cell;}
    .style0
    	{mso-number-format:General;
    	text-align:general;
    	vertical-align:bottom;
    	white-space:nowrap;
    	mso-rotate:0;
    	mso-background-source:auto;
    	mso-pattern:auto;
    	color:windowtext;
    	font-size:10.0pt;
    	font-weight:400;
    	font-style:normal;
    	text-decoration:none;
    	font-family:Arial;
    	mso-generic-font-family:auto;
    	mso-font-charset:0;
    	border:none;
    	mso-protection:locked visible;
    	mso-style-name:Normale;
    	mso-style-id:0;}
    td
    	{mso-style-parent:style0;
    	padding-top:1px;
    	padding-right:1px;
    	padding-left:1px;
    	mso-ignore:padding;
    	color:windowtext;
    	font-size:10.0pt;
    	font-weight:400;
    	font-style:normal;
    	text-decoration:none;
    	font-family:Arial;
    	mso-generic-font-family:auto;
    	mso-font-charset:0;
    	mso-number-format:General;
    	text-align:general;
    	vertical-align:bottom;
    	border:none;
    	mso-background-source:auto;
    	mso-pattern:auto;
    	mso-protection:locked visible;
    	white-space:nowrap;
    	mso-rotate:0;}
    -->
    </style>
    <!--[if gte mso 9]><xml>
     <x:ExcelWorkbook>
      <x:ExcelWorksheets>
       <x:ExcelWorksheet>
        <x:Name>Cartel1</x:Name>
        <x:WorksheetOptions>
         <x:Print>
          <x:ValidPrinterInfo/>
          <x:PaperSizeIndex>9</x:PaperSizeIndex>
          <x:VerticalResolution>0</x:VerticalResolution>
         </x:Print>
         <x:Selected/>
         <x:ProtectContents>False</x:ProtectContents>
         <x:ProtectObjects>False</x:ProtectObjects>
         <x:ProtectScenarios>False</x:ProtectScenarios>
        </x:WorksheetOptions>
       </x:ExcelWorksheet>
      </x:ExcelWorksheets>
      <x:WindowHeight>12525</x:WindowHeight>
      <x:WindowWidth>15195</x:WindowWidth>
      <x:WindowTopX>480</x:WindowTopX>
      <x:WindowTopY>120</x:WindowTopY>
      <x:ProtectStructure>False</x:ProtectStructure>
      <x:ProtectWindows>False</x:ProtectWindows>
     </x:ExcelWorkbook>
    </xml><![endif]-->
    </head>
    
    <body link=blue vlink=purple>
    
    <table x:str border=0 cellpadding=0 cellspacing=0 width=256 style='border-collapse:
     collapse;table-layout:fixed;width:192pt'>
     <col width=64 span=4 style='width:48pt'>
     <tr height=17 style='height:12.75pt'>
      <td height=17 width=64 style='height:12.75pt;width:48pt'>nome</td>
      <td width=64 style='width:48pt'>numero</td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
     </tr>
     <tr height=17 style='height:12.75pt'>
      <td height=17 style='height:12.75pt'>Pietro</td>
      <td colspan=3 style='mso-ignore:colspan' x:str="'12345678901234567890">12345678901234567890</td>
     </tr>
     <![if supportMisalignedColumns]>
     <tr height=0 style='display:none'>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
     </tr>
     <![endif]>
    </table>
    
    </body>
    
    </html>
    io però non vado più in là
    Pietro

  10. #10
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    codice:
    	
    public static void Export(DataGrid MyDataGrid, Page CurrentPage,
    			string reportName, DataTable dt) {
    		
         String styleTestoSemplice = "<style>td {mso-number-format:\\@;text-align: right; } </style>"; 
         CurrentPage.Response.Clear();    
         CurrentPage.Response.Buffer= true;    
         CurrentPage.Response.ContentType = "application/vnd.ms-excel";    
         CurrentPage.Response.AppendHeader("Content-Disposition", "attachment;filename=" + reportName.Trim() + ".xls");  
         CurrentPage.Response.Charset = "";  
         System.IO.StringWriter oStringWriter = new System.IO.StringWriter();  
         System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);  
    
         DataGrid DataGrid2 = new DataGrid();    
         DataGrid2 = MyDataGrid;    
         DataGrid2.AllowPaging = false;	
    	
         DataGrid2.DataSource = dt;
         DataGrid2.DataMember = MyDataGrid.DataMember;
         DataGrid2.DataBind();
         DataGrid2.EnableViewState = false;
    			
         CurrentPage.Response.Write(styleTestoSemplice); 
    
         ClearChildControls(DataGrid2);	
         DataGrid2.RenderControl(oHtmlTextWriter);    
         CurrentPage.Response.Write(oStringWriter.ToString());  
         CurrentPage.Response.End();


    Grazie Pietro, come al solito il tuo suggerimento è stato folgorante.
    Ho inserito le due istruzioni evidenziate e va a meraviglia.

    Ancora grazie


    Leonardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.