¿Puedo configurar automáticamente el ancho de una hoja de cálculo generado por el SDK de XML abierto sin calcular las anchuras individuales?

StackOverflow https://stackoverflow.com/questions/2760168

Pregunta

Estoy trabajando en la creación de un archivo de Excel a partir de un gran conjunto de datos utilizando el SDK de Open XML. Por fin he conseguido obtener un nodo Columnas funcional, que especifica todas las columnas que efectivamente se utilizan en el archivo. Hay una propiedad "BestFit" que puede ser definido como true, pero esto al parecer no hace nada. ¿Hay una manera de fijar automáticamente estas columnas a "mejor ajuste", de modo que cuando alguien abre este archivo, que ya están dimensionados para la cantidad correcta? O estoy obligado a calcular el ancho de cada columna debe ser por adelantado, y puse esto en el código?

¿Fue útil?

Solución

A mi modo de entender la especificación y esta discusión MSDN , BestFit le indica el ancho se calcula automáticamente en Excel, pero no le dice a Excel que se debe calcular de nuevo la próxima vez que se abra.

Como "goodol" indica en esa discusión, creo que el ancho sólo se puede calcular cuando se muestra la columna, ya que depende de los contenidos, la fuente utilizada, otros parámetros de estilo ... Así que incluso si desea pre Calcule el ancho de ti mismo, ser conscientes de que esto es sólo una estimación, y puede ser malo si el contenido incluye un montón de personajes "ancho". ¿O el SDK de Open XML hacer esto para usted?

Otros consejos

Estoy usando EPPlus que recomiendo encarecidamente. Me tomó un tiempo para averiguar cómo hacerlo usando eso, esto es lo que ocurrió:

// Get your worksheet in "sheet" variable

// Set columns to auto-fit
for (int i = 1; i <= sheet.Dimension.Columns; i++)
{
    sheet.Column(i).AutoFit();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top