Я создаю Excel из своего приложения и хочу получить файл Excel с размером столбца автозаполнения.
Заполнив таблицу в рабочей книге, я установил столбцы следующим образом:
public void AutoFitColumns(Sheet sheet)
{
//get all cells in sheet
IEnumerable<Cell> cells = GetCells(sheet);
//find max column number
int maxColumnIndex = cells.Select(a => GetColumnIndex(a.CellReference))
.Where(a => a.HasValue)
.Select(a => a.Value)
.Distinct()
.Max();
Worksheet worksheet = GetWorkSheetPart(sheet).Worksheet;
// Check if the column collection exists
Columns cs = worksheet.Elements<Columns>().FirstOrDefault();
if (cs == null)
{
// If Columns appended to worksheet after sheetdata Excel will throw an error.
SheetData sd = worksheet.Elements<SheetData>().FirstOrDefault();
if (sd != null)
cs = worksheet.InsertBefore(new Columns(), sd);
else
{
cs = new Columns();
worksheet.Append(cs);
}
}
Column c = new Column
{
Min = (uint)1,
Max = (uint)maxColumnIndex,
Width = 100D,
CustomWidth = true,
BestFit = true
};
cs.Append(c);
}
Почему-то я не вижу свойства столбца BestFit. Я нашел https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/cc802410(v=office.14)?redirectedfrom=MSDN там, где это описано:
Флаг, указывающий, установлено ли для указанного столбца (столбцов) значение «наилучшее соответствие». Для «наилучшего соответствия» устанавливается значение «истина» в следующих условиях: ширина столбца никогда не задавалась пользователем вручную, И ширина столбца не является шириной по умолчанию. «Наилучшее соответствие» означает, что когда числа вводятся в ячейку, содержащуюся встолбец «наилучшим образом», ширина столбца должна автоматически изменить размер для отображения числа. [Примечание: в лучших случаях ширина столбца не должна быть меньше, только больше. примечание к концу]
Итак, я попробовал несколько способов применения автоматической ширины столбца, как описано в документе, и метод «Проба / Ошибка»
Кто-нибудь знает, почему этоне работает?
Мои шаги следующие:
- Создание стилей и форматов, используемых в Excel
- Создание таблицы с данными (отдельные значения в правильныхформат) для каждой ячейки
- Я хочу создать столбцы и сравнить таблицу с автоматической шириной столбца в соответствии с содержанием