2012-03-20 11 views
5

Ho una tabella HTML regolare:la creazione di un file excel e in espansione automaticamente la larghezza delle colonne

<table> 
<tr>hello</tr> 
<tr>world</tr> 
</table> 

e sto creando un file XLS fuori di esso:

string randomname = @"C:\attachmentsfolder\" + System.IO.Path.GetRandomFileName() + ".xls"; 
System.IO.File.WriteAllText(randomname, message); 

Quando apro il file XLS generato, ho bisogno di espandere MANUALMENTE le colonne per vedere i dati lunghi.

La mia domanda è: come posso generare questo file XLS in modo tale che le colonne siano già dimensionate correttamente?

+2

tuo HTML non è valido, per cominciare , quindi non funzionerà mai. –

+0

colpa mia, basta ripararlo –

risposta

1

In Excel VBA, è possibile ottenere l'effetto desiderato con Rng.Columns.AutoFit. Credo che l'equivalente C# sia Rng.Columns.AutoFit();.

Tuttavia, sono d'accordo con Diodeus, dovrai prima sistemare il tuo html.

0

È anche possibile utilizzare uno strumento di terze parti come ad es. Aspose.Cells per creare il file Excel.

L'ho usato in molti progetti con successo. Fornisce la funzione di adattamento automatico richiesta.

3

si potrebbe fare facilmente con EPPlus (Open Source .NET Excel 2007+ biblioteca), e si avrà un file excel valida, ecco il codice di esempio:

public static void FitAndSaveToExcel(FileInfo excelFile, string sheetName) 
{ 
    ExcelPackage pack = new ExcelPackage(); 
    ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName); 
    ws.Cells[1, 1].Value = "Some Long text that needs fitting!"; 
    ws.Cells[1, 2].Value = "Short one"; 
    ws.Column(1).AutoFit(); 
    pack.SaveAs(excelFile); 
} 
Problemi correlati