Работа с управление на таблици

Работа с управление на таблици

Съветът на ЕС Workbook class е коренният обект за всички операции на таблицата в Aspose.Cells FOSS за .NET. Тя предоставя достъп до файла “FOS” и се използва като код, който да бъде използван от потребителя. 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 референтна информация

Клас / методОписание на състоянието
WorkbookRoot обект създаване, зареждане и запазване на работни книги
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Изхвърлено, когато файлът не може да бъде възстановен.
 Български