una teclado tamaño sola otras modificar medidas las fila como columna centimetros celdas celda cambiar ancho alto ajustar agrandar c# excel office-interop

c# - teclado - como modificar el alto de una fila en excel



¿Cómo establecer correctamente el ancho de columna al crear un archivo de Excel?(Propiedades de la columna) (6)

Este enlace explica cómo aplicar un estilo de celda a un rango de celdas: http://msdn.microsoft.com/en-us/library/f1hh9fza.aspx

Ver este fragmento de código:

Microsoft.Office.Tools.Excel.NamedRange rangeStyles = this.Controls.AddNamedRange(this.Range["A1"], "rangeStyles"); rangeStyles.Value2 = "''Style Test"; rangeStyles.Style = "NewStyle"; rangeStyles.Columns.AutoFit();

Estoy usando la biblioteca estándar

using Excel = Microsoft.Office.Interop.Excel;

Y así es como creo Excel, solo una pequeña parte del código:

//Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; Excel._Application xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); //add data xlWorkSheet.Cells[1, 1] = ""; xlWorkSheet.Cells[1, 2] = "Student1"; xlWorkSheet.Cells[1, 3] = "Student2"; xlWorkSheet.Cells[1, 4] = "Student3";

El problema es que a veces el tamaño de la celda puede ser más pequeño que el tamaño del texto. Probé este:

Excel.Range chartRange; chartRange.EntireColumn.ColumnWidth = 31.43;

Funciona bien, pero necesito establecer esta propiedad para cada columna por separado. ¿Cómo puedo hacer eso?


Excel ColumnWidth de dataGridView:

foreach (DataGridViewColumn co in dataGridView1.Columns) { worksheet.Columns[co.Index + 1].ColumnWidth = co.Width/8; }


He cambiado el ancho de todas las columnas en mi caso como

worksheet.Columns[1].ColumnWidth = 7; worksheet.Columns[2].ColumnWidth = 15; worksheet.Columns[3].ColumnWidth = 15; worksheet.Columns[4].ColumnWidth = 15; worksheet.Columns[5].ColumnWidth = 18; worksheet.Columns[6].ColumnWidth = 8; worksheet.Columns[7].ColumnWidth = 13; worksheet.Columns[8].ColumnWidth = 17; worksheet.Columns[9].ColumnWidth = 17;

Nota: Las columnas en la hoja de trabajo comienzan con 1 no desde 0 como en Arrary.


Lo hice de esta manera:

var xlApp = new Excel.Application(); var xlWorkBook = xlApp.Workbooks.Add(System.Reflection.Missing.Value); var xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Item[1]; xlWorkSheet.Columns.AutoFit();

De esta manera, las columnas siempre se ajustan al ancho del texto dentro de las celdas.

Espero que ayude a alguien!


Normalmente hago esto en vb y es más fácil porque Excel graba macros en vb. Entonces, lo que normalmente hago, voy a sobresalir y guardar la macro que quiero hacer.

Así que eso es lo que hice ahora y obtuve este código:

Columns("E:E").ColumnWidth = 17.29; Range("E3").Interior.Pattern = xlSolid; Range("E3").Interior.PatternColorIndex = xlAutomatic; Range("E3").Interior.Color = 65535; Range("E3").Interior.TintAndShade = 0; Range("E3").Interior.PatternTintAndShade = 0;

Creo que puedes hacer algo como esto:

xlWorkSheet.Columns[5].ColumnWidth = 18;

Para su última pregunta, lo que debe hacer es recorrer las columnas en las que desea establecer su ancho:

for (int i = 1; i <= 10; i++) // this will aply it form col 1 to 10 { xlWorkSheet.Columns[i].ColumnWidth = 18; }

Espero eso ayude


Ver este fragmento: (C #)

private Microsoft.Office.Interop.Excel.Application xla; Workbook wb; Worksheet ws; Range rg; .......... xla = new Microsoft.Office.Interop.Excel.Application(); wb = xla.Workbooks.Add(XlSheetType.xlWorksheet); ws = (Worksheet)xla.ActiveSheet; rg = (Range)ws.Cells[1, 2]; rg.ColumnWidth = 10; rg.Value2 = "Frequency"; rg = (Range)ws.Cells[1, 3]; rg.ColumnWidth = 15; rg.Value2 = "Impudence"; rg = (Range)ws.Cells[1, 4]; rg.ColumnWidth = 8; rg.Value2 = "Phase";