2009-08-28 11 views
14

Sto lavorando con un oggetto excel in C#. Voglio montare automaticamente le colonne, ma in questo modo: voglio che la larghezza delle colonne sia 5 maggiore di quella impostata dal metodo AutoFit..net C# colonna excel AutoFit

Come è possibile ottenere la larghezza dopo l'utilizzo di AutoFit()?

Come posso rendere le colonne 5 più grandi di questa larghezza?

risposta

4

Supponendo che ci si trovi sulla cella A1 & con un testo lungo, il codice successivo renderà la colonna Autofit e quindi aumenterà la larghezza di 5 caratteri.

Selection.Columns.Autofit 
Selection.Columns(1).ColumnWidth = Selection.Columns(1).ColumnWidth + 5 
27

Se si desidera utilizzare l'oggetto Selection e hanno IntelliSense con l'associazione anticipata, è necessario eseguire il cast dell'oggetto Selection per un intervallo prima:

Excel.Range selectedRange = (Excel.Range)myExcelApp.Selection;  
selectedRange.Columns.AutoFit(); 

foreach (Excel.Range column in selectedRange.Columns) 
{ 
    column.ColumnWidth = (double)column.ColumnWidth + 5; 
} 

- Mike

1

Prova a scorrere le righe per ottenere la lunghezza del testo:

var row = 1; 
ws.Column(1).AutoFit(ws.Cells[row, 1].Text.Length + 5); 

Dove ws è il tuo foglio di lavoro:

var pck = new ExcelPackage(); 
var ws = pck.Workbook.Worksheets.Add("Plan1") 
0

Prova Ti piace questa,

ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1"); 

//Load the datatable into the sheet, starting from cell A1. Print the column names on row 1 
ws.Cells["A1"].LoadFromDataTable(data_table, true); 

//Set full Sheet Auto Fit 
ws.Cells[1, 1, data_table.Rows.Count, data_table.Columns.Count].AutoFitColumns();