Могу ли я установить автоматическую ширину на открытой электронном таблице XML SDK без расчета индивидуальной ширины?

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

Вопрос

Я работаю над созданием файла Excel из большого набора данных, используя Open XML SDK. Наконец -то мне удалось получить функциональный узел столбцов, который указывает все столбцы, которые фактически будут использоваться в файле. Существует свойство «BestFit», которая может быть настроена на истинность, но это, по -видимому, ничего не делает. Есть ли способ автоматически установить эти столбцы в «наилучшее соответствие», чтобы, когда кто -то открывает этот файл, он уже размером с правильного количества? Или я вынужден рассчитать, насколько широким должен быть каждый столбец заранее, и установить это в коде?

Это было полезно?

Решение

Как я понимаю спецификацию и это обсуждение MSDN, BestFit сообщает вам, что ширина была автоматическая разведка в Excel, но она не говорит Excel, что она должна рассчитать ее снова в следующий раз, когда она будет открыта.

Как указывает «Гудол» в этом обсуждении, я думаю, что ширина может быть рассчитана только при отображении столбца, поскольку это зависит от содержимого, используемого шрифта, параметры других стилей ... так что даже если вы хотите предварительно рассчитывать Ширина сами, имейте в виду, что это только оценка, и это может быть неправильно, если содержимое содержит много «широких» символов. Или открытый XML SDK делает это для вас?

Другие советы

я использую Epplus Что я очень рекомендую. Мне потребовалось некоторое время, чтобы понять, как это сделать, используя это, вот что я придумал:

// Get your worksheet in "sheet" variable

// Set columns to auto-fit
for (int i = 1; i <= sheet.Dimension.Columns; i++)
{
    sheet.Column(i).AutoFit();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top