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