Установить высоту строки, используя Excellibrary

Я использую Excellibrary и я хочу установить высоту строки или ширину столбца. Звучит очень просто, но я не могу найти решение. Как я могу это сделать?

1 ответ

Решение

Я полагаю, вы имеете в виду отлично? В данный момент мне не загружают его, но, если память не изменяет, попробуйте:

Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");

worksheet.Cells[0, 0] = new Cell("Cell 0,0");
worksheet.Cells[1, 0] = new Cell("Cell 1,0");

ushort currentHeight = worksheet.Cells.GetRowHeight(1); 
worksheet.Cells.GetRow(1).Height = (ushort)(currentHeight + 20);

workbook.Worksheets.Add(worksheet);
workbook.Save(filePath); // will need to set filepath

Изменить: хотя в теории это правильно, я на самом деле не уверен, что это свойство работает (после быстрого тестирования в Excel 2010 и Excel 2007).

Если вы будете следовать исходному коду, то, очевидно, Row учебный класс Height свойство public field действительно выписывается WorksheetEncoder линия 55, и, в свою очередь, через ROW учебный класс Encode метод в Stream выписывать рабочую книгу, но если я открою ее в Excel, она не сработает (У меня нет версий Excel до 2007 года для тестирования).

К сожалению, нет другого свойства, чтобы использовать для установки высоты строки. Это тот, который используется BinaryWriter создать рабочую книгу.

Также обратите внимание, что если вы ориентируетесь на Excel 2010, вам нужно будет выделить часть ячеек в приведенном выше примере, чтобы убедиться, что конечный файл достаточно большой, чтобы Excel 2010 был счастлив. например:

Workbook workbook = new Workbook(); 
Worksheet worksheet = new Worksheet("First Sheet"); 

//  Excel 2010 hack - issue 102
for (int r = 0; r < 150; r++) {
    for (int c = 0; c < 10; c++) {
        worksheet.Cells[r, c] = new Cell(" ");
    }
}
Другие вопросы по тегам