Работа с управлением электронными таблицами
Работа с управлением электронными таблицами
В связи с этим Workbook class является корневым объектом для всех операций с электронной таблицей в Aspose.Cells FOSS для .NET. Он предоставляет доступ к файлу WorksheetCollection,В этом руководстве рассматриваются элементы загрузки с допустимой погрешностью, организация рабочих листов, конфигурация расписания печати и параметры управления разделами строк/столбцов/клеток.
Загрузка рабочих сборников с вариантами ремонта
Передать путь файла в Workbook Конструктор для загрузки существующего файла XLSX. Доставьте LoadOptions объект с TryRepairPackage и в том числе: TryRepairXml настроить на: true попытка восстановления файлов с незначительными структурными повреждениями. A WorkbookLoadException - когда файл не восстанавливается.
using Aspose.Cells_FOSS;
var options = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
var wb = new Workbook("data.xlsx", options);
Console.WriteLine("Sheets: " + wb.Worksheets.Count);
Console.WriteLine("Cell A1: " + wb.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Unrecoverable: " + ex.Message);
}Добавление и организация рабочих листов
Workbook.Worksheets возвращает a WorksheetCollection.- Позвони . Add(name) Доступ к рабочим листам по индексу на основе нуля или по имени. Установление WorksheetCollection.ActiveSheetName чтобы контролировать, какая вкладка будет активна при открытии файла.
using Aspose.Cells_FOSS;
var wb = new Workbook();
// Rename the default sheet
wb.Worksheets[0].Name = "Summary";
// Add sheets
var dataIdx = wb.Worksheets.Add("Data");
var archiveIdx = wb.Worksheets.Add("Archive");
// Set active sheet
wb.Worksheets.ActiveSheetName = "Data";
// Write to sheets by name
wb.Worksheets["Summary"].Cells["A1"].PutValue("Overview total");
wb.Worksheets["Data"].Cells["A1"].PutValue("Raw rows start here");
wb.Save("organised.xlsx");
// Verify
var loaded = new Workbook("organised.xlsx");
Console.WriteLine("Active: " + loaded.Worksheets.ActiveSheetName);
Console.WriteLine("Sheet count: " + loaded.Worksheets.Count);Скрытие и показывание рабочих листов
Набор Worksheet.VisibilityType в) к VisibilityType.Hidden скрыть лист без его удаления. Скрытые листы сохраняются в файле XLSX и могут быть продемонстрированы путем настройки VisibilityType.Visible.Цвет вкладки устанавливается через: Worksheet.TabColor.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.Worksheets[0].Name = "Visible";
var hiddenIdx = wb.Worksheets.Add("Internal");
var hiddenSheet = wb.Worksheets[hiddenIdx];
hiddenSheet.VisibilityType = VisibilityType.Hidden;
hiddenSheet.Cells["A1"].PutValue("Internal data");
wb.Worksheets["Visible"].TabColor = Color.FromArgb(255, 70, 130, 180);
wb.Save("hidden.xlsx");Настройка страницы
Worksheet.PageSetup раскрывает все свойства, связанные с печатью. PageOrientationType использовать для переключения между портретом и пейзажем. PaperSizeType Определить площадь печати с помощью PrintArea, настроить повторные строки/столбцы с: PrintTitleRows/PrintTitleColumns, и добавлять ручные перерывы страниц с AddHorizontalPageBreak и в том числе: AddVerticalPageBreak.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Sample data
for (var r = 0; r < 60; r++)
ws.Cells[r, 0].PutValue("Row " + (r + 1));
var ps = ws.PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.LeftMarginInch = 0.5d;
ps.RightMarginInch = 0.5d;
ps.TopMarginInch = 0.75d;
ps.BottomMarginInch = 0.75d;
ps.PrintArea = "$A$1:$H$60";
ps.PrintTitleRows = "$1:$1";
ps.CenterHeader = "Sales Report";
ps.LeftFooter = "Confidential";
ps.RightFooter = "Page &P of &N";
ps.PrintGridlines = true;
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(30);
wb.Save("paged.xlsx");
var loaded = new Workbook("paged.xlsx");
Console.WriteLine("Orientation: " + loaded.Worksheets[0].PageSetup.Orientation);
Console.WriteLine("Print area: " + loaded.Worksheets[0].PageSetup.PrintArea);Размер ряда и столбца
Доступ к ним Worksheet.Cells.Rows по индексу, чтобы получить a Row Объект. Row.Height (в точках) для управления высотой ряда. Row.IsHidden в) к true Чтобы скрыть ряд. Worksheet.Cells.Columns по индексу, чтобы получить a Column Объект. Column.Width (в символьных единицах) и Column.IsHidden.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Populate data
for (var r = 0; r < 5; r++)
for (var c = 0; c < 4; c++)
ws.Cells[r, c].PutValue($"R{r + 1}C{c + 1}");
// Row height and visibility
ws.Cells.Rows[0].Height = 28d; // Header taller
ws.Cells.Rows[3].IsHidden = true; // Hide row 4
// Column width and visibility
ws.Cells.Columns[0].Width = 22d;
ws.Cells.Columns[3].IsHidden = true;
wb.Save("layout.xlsx");
var loaded = new Workbook("layout.xlsx");
Console.WriteLine("Row 0 height: " + loaded.Worksheets[0].Cells.Rows[0].Height);
Console.WriteLine("Col 0 width: " + loaded.Worksheets[0].Cells.Columns[0].Width);Слияние ячеек
Позвони . Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) для слияния соседних прямоугольных блоков в одну ячейку. Слитая ячечка наследует значение верхней левой ящики. Используйте Worksheet.Cells.MergedCells чтобы прочесть все объединенные области в загруженной книге.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Title spanning A1:D1
ws.Cells["A1"].PutValue("Quarterly Sales Report");
ws.Cells.Merge(0, 0, 1, 4);
// Section header spanning A3:D3
ws.Cells["A3"].PutValue("Region: North");
ws.Cells.Merge(2, 0, 1, 4);
// Column headers
ws.Cells["A4"].PutValue("Product"); ws.Cells["B4"].PutValue("Q1");
ws.Cells["C4"].PutValue("Q2"); ws.Cells["D4"].PutValue("Q3");
wb.Save("report.xlsx");
var loaded = new Workbook("report.xlsx");
Console.WriteLine("Merged regions: " + loaded.Worksheets[0].Cells.MergedCells.Count);Советы и лучшие практики
- Использование:
WorksheetCollection.ActiveSheetNameчтобы убедиться, что правильная вкладка выбрана при открытии файла в Excel. - Установка границ страницы в дюймах (
LeftMarginInch,TopMarginInch) это значения плавающей точки, а не целые числа. - Скрытие строк/столбцов (
IsHidden = true) сохраняет их данные; удаление строки удаляет данный навсегда. - Всегда звони .
Workbook.Save()один раз в конце операции партии, а не после каждой смены. - Смешивание ячеек в лист данных с осторожностью объединенные области препятствуют правильному функционированию сортировки и автоматического фильтрации на всей объединяемой территории.
Общие проблемы
| Выпуск | Причина . | Устранить |
|---|---|---|
WorkbookLoadException нагруженный | Коррумпированный ZIP или XML в XLSX | Набор LoadOptions.TryRepairPackage = true и в том числе: TryRepairXml = true |
Add(name) возвращает неправильный индекс. | Использование названия листа в качестве индекса | Add() возвращает индекс int; используйте этот индекс для доступа к новому листу. |
| Высота строки не устойчива | Высота установлена на 0 или отрицательное значение. | Используйте положительное двойное значение, например: 28d |
| Объединенная ячейка показывает неправильное значение | Значение, записанное в не верхнюю левую ячейку диапазона объединения | Перед вызовом запишите значение в левую верхнюю ячейку . Cells.Merge() |
| Не отображается разрыв страницы . | AddHorizontalPageBreak Позже . Save() | Настроить перерывы перед звонком . Save() |
FAQ
Сколько рабочих листов я могу добавить?
Формат XLSX поддерживает до 1024 листов на рабочую книгу. Практические ограничения зависят от доступной памяти и размера файла.
Можно скопировать таблицу между рабочими книгами?
Текущая поверхность API не выставляет на свет CopyTo Загрузить оба файла и передавать данные по ячейке.
Как я перенаправляю рабочие листы?
Использование: WorksheetCollection Директное позиционное движение не находится на текущей поверхности API.
Какие подразделения? PageSetup использовать для маржи?
Все маржинальные свойства (LeftMarginInch, TopMarginInch, и т.д.) выражены в дюймах, как double ценности.
- Да , да . Cells.Merge заменить существующие данные о клетках?
Значение верхней левой ячейки сохраняется; значения в других объединенных ячеях удаляются.
Справочное резюме API
| Класс / метод | Описание: |
|---|---|
Workbook | Корневой объект создать, загрузить и сохранить рабочие книги |
Workbook.Worksheets | Возвращает: WorksheetCollection |
Workbook.Save(path) | Продолжать работу с XLSX |
WorksheetCollection.Add(name) | Присоединить новый лист с именем |
WorksheetCollection.ActiveSheetName | Активная вкладка на открытом файле |
Worksheet.VisibilityType | VisibilityType.Hidden или в другом случае: Visible |
Worksheet.TabColor | Цвет вкладки (Color) |
Worksheet.PageSetup | Настройки расписания печати |
PageSetup.Orientation | PageOrientationType.Landscape или в другом случае: Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4, и т.д. |
PageSetup.AddHorizontalPageBreak(row) | Вставить горизонтальный разрыв страниц . |
Cells.Rows[index].Height | Высота строки в точках |
Cells.Rows[index].IsHidden | Скрыть/показать строку |
Cells.Columns[index].Width | Ширина столбца в знаковых единицах |
Cells.Columns[index].IsHidden | Колонка сокрытие/показ |
Cells.Merge(row, col, numRows, numCols) | Слияние прямоугольного блока |
Cells.MergedCells | Список объединенных регионов в листе |
LoadOptions.TryRepairPackage | Попытка ремонта ZIP при загрузке. |
LoadOptions.TryRepairXml | Попытка восстановления XML при загрузке . |
WorkbookLoadException | Выброшены, когда файл не восстанавливается. |