#c# #asp.net #asp.net-mvc
#c# #asp.net #asp.net-mvc
Вопрос:
как сгенерировать ячейки автоматической подгонки в Excel с помощью c # filestreamresult
Бринал
Комментарии:
1. Пожалуйста, предоставьте больше контекста и / или примера кода.
Ответ №1:
Автоматическая подгонка содержимого
Aspose.Cells предоставляет класс Workbook, который представляет файл Excel. Класс Workbook содержит коллекцию Worksheets, которая позволяет получить доступ к каждому листу в файле Excel.
Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет широкий спектр свойств и методов для управления рабочим листом. Но в этом разделе мы увидим, как мы можем использовать класс Worksheet для автоматической подгонки строк или столбцов.
Строка автоматической подгонки — просто
Самый простой подход к автоматической подгонке ширины и высоты строки заключается в вызове метода AutoFitRow класса Worksheet. Метод AutoFitRow принимает индекс строки (строки, автоматический размер которой желателен) в качестве параметра.
Пример:
//Creating a file stream containing the Excel file to be opened
FileStream fstream = new FileStream("C:\book1.xls", FileMode.Open);
//Opening the Excel file through the file stream
Workbook workbook = new Workbook(fstream);
//Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.Worksheets[0];
//Auto-fitting the 3rd row of the worksheet
worksheet.AutoFitRow(2);
//Saving the modified Excel file
workbook.Save("C:\output.xls");
//Closing the file stream to free all resources
fstream.Close();
Строка автоматической подгонки в диапазоне ячеек
Мы знаем, что одна строка состоит из множества столбцов / ячеек. Aspose.Cells также позволяет разработчикам автоматически подгонять строку на основе содержимого в диапазоне ячеек внутри строки, вызывая перегруженную версию метода AutoFitRow, который принимает три следующих параметра:
* Row Index, represents the index of the row whose contents need to auto-fit
* First Column Index, represents the index of the first column of the row
* Last Column Index, represents the index of the last column of the row
Этот метод проверит содержимое всех столбцов в строке, а затем автоматически подгонит строку.
Пример:
//Auto-fitting the 3rd row of the worksheet based on the contents in a range of
//cells (from 1st to 9th column) within the row
worksheet.AutoFitRow(2,0,8);
Столбец автоматической подгонки — простой
Самый простой подход к автоматической подгонке ширины и высоты столбца заключается в вызове метода AutoFitColumn класса Worksheet. Метод AutoFitColumn принимает индекс столбца (столбца, автоматический размер которого желателен) в качестве параметра.
Пример:
worksheet.AutoFitColumn(3);
Столбец автоматической подгонки в диапазоне ячеек
Один столбец состоит из множества строк / ячеек. Разработчики могут автоматически подгонять столбец на основе содержимого в диапазоне ячеек внутри столбца, вызывая перегруженную версию метода AutoFitColumn, который принимает три следующих параметра:
* Column Index, represents the index of the column whose contents need to auto-fit
* First Row Index, represents the index of the first row of the column
* Last Row Index, represents the index of the last row of the column
Этот метод проверит содержимое всех строк в столбце, а затем автоматически подгонит столбец.
Пример:
worksheet.AutoFitColumn(3,0,8);
Строки автоматической подгонки для объединенных ячеек
MS Excel изначально не устанавливает операцию автоматической подгонки строк к объединенным ячейкам. Иногда эта функция становится жизненно важной для пользователя, и ему действительно нужно реализовать операцию автоматической подгонки строк и для объединенных ячеек.
Aspose.Cells предоставляет эту возможность, и у него есть API AutoFitterOptions. Используя API, можно автоматически подгонять строки на листе, включая объединенные ячейки.
Пример:
Workbook wb = new Workbook();
Worksheet _worksheet = wb.Worksheets[0];
Range range = _worksheet.Cells.CreateRange(0, 0, 1, 2);
range.Merge();
_worksheet.Cells[0, 0].Value = "A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog....end";
Aspose.Cells.Style style = _worksheet.Cells[0, 0].GetStyle();
style.IsTextWrapped = true;
_worksheet.Cells[0, 0].SetStyle(style);
AutoFitterOptions options = new AutoFitterOptions();
options.AutoFitMergedCells = true;
_worksheet.AutoFitRows(options);
wb.Save("e:\test2\autofitmergedcells.xlsx");
Важно знать
Если ячейка объединена, то методы автоматической подгонки не будут применяться к этой ячейке (по умолчанию), которые такие же, как в Microsoft Excel. Более того, если текст ячейки переносится, метод AutFitColumn также не будет применен к нему. Еще одна важная вещь, которую следует знать, это то, что методы автоматической подгонки требуют много времени. Итак, вы должны вызывать эти методы как можно реже, чтобы обеспечить эффективность вашего приложения.