Práca s správu tabuľky
Práca s správu tabuľky
Úrad pre bezpečnosť a ochranu zdravia Workbook class je koreňový objekt pre všetky operácie tabuľky v Aspose.Cells FOSS for .NET. Poskytuje prístup k WorksheetCollection,Táto príručka zahŕňa nastavenie, ktoré je odolné voči poruchám, organizáciu hárkov, konfiguráciu layoutu tlače a ovládanie rozloženia riadkov/stolpov/obvodov.
Nahrávanie pracovníkov s možnosťami opravy
Predajte cestu súboru na Workbook Konstruktor pre načítanie existujúceho súboru XLSX. Dodávať a LoadOptions predmet s TryRepairPackage a) TryRepairXml nastavený na: true na pokus o obnovu súborov s menšou štrukturálnou porušením. A WorkbookLoadException je vyhodený, keď súbor nie je obnoviteľný.
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);
}Pridanie a usporiadanie pracovných hárkov
Workbook.Worksheets vráti a WorksheetCollection.Zavolaj . Add(name) Pridať nový hárok podľa názvu; metóda vráti index nového hárka. Prístup k hárkom na základe indexu s nulovou základňou alebo podľa mena. Nastaviť WorksheetCollection.ActiveSheetName ovládať, ktorá karta je aktívna pri otvorení súboru.
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);Ukryť a zobraziť pracovné listy
Sadzba Worksheet.VisibilityType na: VisibilityType.Hidden Skryté listy sú uchovávané v XLSX súbore a môžu byť viditeľné nastavením VisibilityType.Visible.Farba tabuľky je nastavená prostredníctvom: 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");Konfigurácia nastavenia stránky
Worksheet.PageSetup odhaľuje všetky vlastnosti súvisiace s tlačou. PageOrientationType Používať PaperSizeType Vybrať veľkosť papiera. Definovať tlačiarenskú plochu s PrintArea, nastaviť opakované riadky/spojky s: PrintTitleRows/PrintTitleColumns, a pridať manuálne odlomky stránok s AddHorizontalPageBreak a) 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);Rozmer riadkov a stĺpcov
Prístup Worksheet.Cells.Rows podľa indexu, aby sa získala hodnota Row Objekt. Nastavenie Row.Height (v bode) na kontrolu výšky riadku. Nastavenie Row.IsHidden na: true Prístup k číslu. Worksheet.Cells.Columns podľa indexu, aby sa získala hodnota Column Objekt. Nastavenie Column.Width (v znakových jednotkách) a 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);Zlúčenie buniek
Zavolajte . Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) Zlúčená bunka zdedí hodnotu hornej ľavej bunky. Použijte Worksheet.Cells.MergedCells prečítať všetky zlúčené oblasti v naloženom zošite.
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);Tipy a najlepšie postupy
- Použitie:
WorksheetCollection.ActiveSheetNameaby sa zabezpečilo, že pri otvorení súboru v programe Excel je vybratá správna karta. - Nastaviť okraj stránky v palcoch (
LeftMarginInch,TopMarginInch) sú to hodnoty s pohyblivým bodom, nie celkové čísla. - Skryté riadky/spojky (
IsHidden = true) uchováva svoje údaje; vymazanie riadku trvalo odstráni dáta. - Vždy zavolaj .
Workbook.Save()raz na konci operácie sardy, nie po každej zmene. - Zlúčenie buniek v dátových listech zlúčené oblasti zabraňujú správnemu fungovaniu triedenia a automatického filtrovania v celej zlučenej oblasti.
Spoločné problémy
| Výstava | Príčina: | Oprava |
|---|---|---|
WorkbookLoadException na zaťaženie | Zkorumpovaný ZIP alebo XML v XLSX | Sadzba LoadOptions.TryRepairPackage = true a) TryRepairXml = true |
Add(name) vráti nesprávny index | Použitie názvu hárka ako indexu | Add() vráti int index; použijte tento index na prístup k novému hárku |
| Výška riadku nie je pretrvávajúca | Výška nastavená na 0 alebo zápornú hodnotu | Použite pozitívnu dvojitú hodnotu, ako napríklad: 28d |
| Zlúčená bunka zobrazuje nesprávnu hodnotu | Hodnota zapísaná do bunky v oblasti zlúčenia, ktorá nie je hore na ľavej strane. | Vymenujte hodnotu do hornej ľavej bunky pred volaním . Cells.Merge() |
| Nevykazuje sa rozbitie stránky . | AddHorizontalPageBreak nazývaný po: Save() | Nastavenie prestávok pred volaním . Save() |
FAQ
Koľko hárkov môžem pridať?
Formát XLSX podporuje až 1024 hárkov na pracovnú knihu. Praktické limity závisia od dostupnej pamäte a veľkosti súboru.
Môžem kopírovať pracovný hárok medzi zošitmi?
Aktuálny API povrch neukazuje CopyTo Metóda pre kopírovanie listov v pracovnom knihe. Nahrávajte oba súbory a prenášajte údaje bunku po bunkách.
Ako mám preurčiť pracovné listy?
Použitie: WorksheetCollection Priamy polohový pohyb nie je v aktuálnom API povrchu.
Aké jednotky to robia? PageSetup Používanie na marže?
Všetky vlastnosti marže (LeftMarginInch, TopMarginInch, atď.) sú v palcoch ako double hodnoty.
Je to tak ? Cells.Merge nahradiť existujúce bunkové údaje?
Hodnota hornej ľavej časti bunky sa zachováva; hodnoty v ostatných zlúčených bunkách sú vymazané.
Zhrnutie referenčného API
| Trieda / metóda | Opis: |
|---|---|
Workbook | Root objekt vytvoriť, načítať a uložiť zošitov |
Workbook.Worksheets | Vráti sa: WorksheetCollection |
Workbook.Save(path) | Zostávať v zošite na XLSX |
WorksheetCollection.Add(name) | Pridať nový hárok podľa mena |
WorksheetCollection.ActiveSheetName | Aktivný záložok na otvorenom súbore |
Worksheet.VisibilityType | VisibilityType.Hidden alebo: Visible |
Worksheet.TabColor | Farba tabuľky (Color) |
Worksheet.PageSetup | Nastavenia layoutu tlače |
PageSetup.Orientation | PageOrientationType.Landscape alebo: Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4, atď. |
PageSetup.AddHorizontalPageBreak(row) | Vložiť horizontálny rozbitok stránky |
Cells.Rows[index].Height | Výška riadkov v bodoch |
Cells.Rows[index].IsHidden | Vzor ukladať/ukážka |
Cells.Columns[index].Width | Šírka stĺpca v jednotkách znakov |
Cells.Columns[index].IsHidden | Stĺpec skryť/ukážka |
Cells.Merge(row, col, numRows, numCols) | Zlúčenie obdĺžnikového bloku |
Cells.MergedCells | Zoznam zlúčených regiónov v liste |
LoadOptions.TryRepairPackage | Skúste ZIP opravu pri načítaní . |
LoadOptions.TryRepairXml | Skúste opravy XML pri načítaní . |
WorkbookLoadException | Vydané , keď nie je možné obnoviť súbor . |