Чтобы автоматически установить ширину всех столбцов на «правильный размер» для их содержимого, вы можете позаботиться об этом, вызвав функцию AutoFit, например:
_xlSheet.Columns.AutoFit();
Однако иногда один или два «жулика»значения в столбце делают этот столбец сверхшироким, и вам нужно перетащить столбец влево, чтобы увидеть больше данных.Вы можете преодолеть этот Catch-22, используя как AutoFit, так и затем, указав ширину любых проблемных столбцов.Вот код для того, как это сделать, который предполагает, что столбец 1 - это тот, в который нужно обуздать, а 42 - это ширина, которую вы хотите принять:
private Worksheet _xlSheet;
private static readonly int ITEMDESC_COL = 1;
private static readonly int WIDTH_FOR_ITEM_DESC_COL = 42;
. . .
_xlSheet.Columns.AutoFit();
// Now take back the wider-than-the-ocean column
((Range)_xlSheet.Cells[ITEMDESC_COL, ITEMDESC_COL]).EntireColumn.ColumnWidth = WIDTH_FOR_ITEM_DESC_COL;
Примечание. В качестве дополнительной тонкости вы можетеиметь слишком длинную перенос содержимого (особенно полезно, если они находятся в объединенном (многострочном) диапазоне) примерно так (где «диапазон» - это диапазон, определенный вами при заполнении столбца):
range.WrapText = true;
Примечание. Для работы этого кода необходимо добавить сборку Microsoft.Offie.Interop.Excel.