Работа с управлением электронными таблицами

Работа с управлением электронными таблицами

Работа с управлением электронными таблицами

В связи с этим 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.VisibilityTypeVisibilityType.Hidden или в другом случае: Visible
Worksheet.TabColorЦвет вкладки (Color)
Worksheet.PageSetupНастройки расписания печати
PageSetup.OrientationPageOrientationType.Landscape или в другом случае: Portrait
PageSetup.PaperSizePaperSizeType.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Выброшены, когда файл не восстанавливается.
 Русский