Συνεργασία με διαχείριση Spreadsheet
Συνεργασία με διαχείριση Spreadsheet
Η Workbook Η τάξη είναι το ρίζα αντικείμενο για όλες τις λειτουργίες του διαδίκτυου στο Aspose.Cells FOSS για .NET. παρέχει πρόσβαση στην WorksheetCollection, καθορισμένα ονόματα και κύκλο ζωής αποθήκευσης/αποφόρτωσης.Ο παρών οδηγός καλύπτει την ανεκτικότητα φόρτισης, τη οργάνωση φύλλου εργασίας, τον ρυθμό εκτύπωσης-διατάξεων και τους ελέγχους διατάξεις γραμμής/στήλης/κύλινου.
Κατεβάστε βιβλία εργασίας με επιλογές επισκευής
Πάρτε ένα αρχείο στο δρόμο για το Workbook κατασκευαστής για να φορτώσει ένα υπάρχον αρχείο XLSX. Παρέχει μια LoadOptions αντικείμενο με TryRepairPackage και TryRepairXml ΣΕΤΙΔΑ ΓΙΑ true να προσπαθήσει να ανακτήσει αρχεία με ελαφριά διαρθρωτική διαφθορά. α) 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 Επιστρέφει ο Α 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.Το χρώμα του Tab είναι καθορισμένο μέσω 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");Εισαγωγή Page Setup
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 Με τον δείκτη να αποκτήσουμε ένα Row Συσκευή - Set Row.Height (σε σημεία) για να ελέγξετε το ύψος της γραμμής. Row.IsHidden Για να true Να κρύψει την γραμμή. πρόσβαση Worksheet.Cells.Columns Με τον δείκτη να αποκτήσουμε ένα Column Συσκευή - Set 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 μέθοδος για αντίγραφα φύλλων cross-workbook. Κατεβάστε και τα αρχεία και μεταφέρετε δεδομένα κυττάρων ανά κύτταρο.
Πώς μπορώ να επαναφέρω τα φύλλα εργασίας;?
Χρησιμοποιήστε WorksheetCollection Δείκτης πρόσβασης και ανακαλεί φύλλα για να αλλάξει τη λογική τους σειρά. άμεση θέση κίνηση δεν βρίσκεται στην τρέχουσα επιφάνεια API.
Ποια μονάδα κάνει PageSetup Χρησιμοποιήστε το μάρκετινγκ;?
Όλες οι περιουσιακές συνθήκες (LeftMarginInch, TopMarginInch,και τα) είναι σε ίντσες όπως double αξίες .
Η ΚΕ Cells.Merge Αντικαταστήστε τα υπάρχοντα δεδομένα κελιών;?
Η αξία του ανώτερου αριστερού κυττάρου διατηρείται, οι τιμές στα άλλα συγχωνευμένα κύτταρα καθαρίζονται.
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
Workbook | Στόχος: Δημιουργία, φόρτωση και αποθήκευση εργαστηρίων |
Workbook.Worksheets | Επιστρέφει η WorksheetCollection |
Workbook.Save(path) | Πληροφορίες για το βιβλίο εργασίας XLSX |
WorksheetCollection.Add(name) | Εισάγετε ένα νέο φύλλο εργασίας με το όνομα |
WorksheetCollection.ActiveSheetName | Ενεργοποίηση στο αρχείο Open |
Worksheet.VisibilityType | VisibilityType.Hidden ή Visible |
Worksheet.TabColor | Το χρώμα του (Color) |
Worksheet.PageSetup | Εισαγωγή layout |
PageSetup.Orientation | PageOrientationType.Landscape ή Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4,κλπ. |
PageSetup.AddHorizontalPageBreak(row) | Εισάγετε οριζόντια σελίδα break |
Cells.Rows[index].Height | Σημειώνεται η ύψος σε σημεία |
Cells.Rows[index].IsHidden | Σειρά / Show Rue |
Cells.Columns[index].Width | Το πλάτος της στήλης σε μονάδες χαρακτήρα |
Cells.Columns[index].IsHidden | Κρύβει / Σύνθεση στήλη |
Cells.Merge(row, col, numRows, numCols) | Εμφανίσεις ενός ορθογώνου μπλοκ |
Cells.MergedCells | Κατάλογος των συνδεδεμένων περιοχών στο φύλλο |
LoadOptions.TryRepairPackage | Επαναλάβετε την επισκευή ZIP στο φορτίο |
LoadOptions.TryRepairXml | Προσπαθήστε να επισκευάσετε το XML στο φορτίο |
WorkbookLoadException | Πυροβολισμοί όταν το αρχείο είναι ανεκτή |