2012-10-03 6 views
5

adattamento automatico quando si converte datatable .csv miei fogli excel vengono generati come di seguito: enter image description hereeccellere a livello di codice le cellule ad essere la larghezza e l'altezza

e provato come di seguito:

sw.Write(string.Format("=\"{0}\"", drow[i].ToString())); 

poi i miei fogli excel erano come:

enter image description here

nota che le cellule hanno ="" caratteri;

sto provando a fare come l'adattamento automatico larghezza & altezza di ogni cella al livello di programmazione. Come?

+2

Hai provato 'Excel.Rows.AutoFit' e' Excel.Columns.AutoFit'? – paul

+1

Stai semplicemente creando un file .csv o stai utilizzando Microsoft.Office.Interop.Excel per creare un vero file excel? – VoltaicShock

+0

@paul a partire da ora sto creando il xl by stream; Devo caricare quel xl in interop? grazie per la risposta .... –

risposta

1

ho trovato questo in un'altra pagina:

C#

http://www.spreadsheetgear.com/support/help/spreadsheetgear.net.3.0/SpreadsheetGear~SpreadsheetGear.IRange~AutoFit.html

// imposta automaticamente la larghezza sulle colonne B e C. worksheet.Cells. [ "B: C"] Colonne .AutoFit();

// Imposta l'altezza della riga su automatico nelle righe da 7 a 9. worksheet.Cells ["7: 9"] .Rows.AutoFit();

+0

grazie per la risposta. ho già fatto –

+0

That ("xlWorkSheet.Cells [" 1:10 "]. Rows.AutoFit();") restituisce un errore per me, in particolare "System.Runtime.InteropServices.COMException non è stato gestito" –

9

provare a ottenere la gamma e quindi fare Adatta

Range.Rows.AutoFit(); 
Range.Columns.AutoFit(); 
2

Questa domanda mi ha aiutato a risolvere parte di un problema. Ho dovuto copiare i dati su un foglio ausiliario secondario, quindi inviarlo al datagrid, ma quando ho fatto, avrebbe visualizzato nel datagrid la sequenza di ######### per alcuni dei miei dati che era più grande del campo stesso. Quindi ho usato **sheets.UsedRange.Columns.AutoFit();** per risolvere il problema ogni volta che viene creata una nuova colonna. Dove fogli è la mia variabile che ha ricevuto il **Microsoft.Office.Interop.Excel.Worksheet**.

Grazie ragazzi.