Bekerja dengan Manajemen Spreadsheet

Bekerja dengan Manajemen Spreadsheet

Bekerja dengan Manajemen Spreadsheet

Pengelolaan Workbook class adalah objek root untuk semua operasi spreadsheet di Aspose.Cells FOSS for .NET. Ini memberikan akses ke WorksheetCollection, nama yang didefinisikan, dan siklus hidup menyimpan/memungut. Panduan ini mencakup pemadatan toleransi kesalahan, organisasi lembar kerja, konfigurasi tata letak cetak, serta kontrol tata ruang baris/kolom/sel.


Mengisi buku kerja dengan opsi perbaikan

Pasang jalur file ke Workbook Konstruktor untuk memuat file XLSX yang ada. Menyediakan a LoadOptions objek dengan TryRepairPackage dan (b) TryRepairXml ditetapkan pada true untuk mencoba pemulihan file dengan kerusakan struktural kecil. A WorkbookLoadException akan dibuang ketika file tidak dapat dipulihkan.

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);
}

Menambahkan dan Mengorganisir Lembar Kerja

Workbook.Worksheets mengembalikan a WorksheetCollection.- Panggil. Add(name) untuk menambahkan lembar kerja baru dengan nama; metode mengembalikan indeks lembaran baru. Akses lembara kerja dengan indeks berbasis nol atau dengan name. Set WorksheetCollection.ActiveSheetName untuk mengontrol tab mana yang aktif saat file dibuka.

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);

Menyembunyikan dan Menampilkan Lembar Kerja

Set (set) Worksheet.VisibilityType ke VisibilityType.Hidden untuk menyembunyikan lembar tanpa menghapusnya. Lembar tersembunyi disimpan dalam file XLSX dan dapat dibuat terlihat dengan mengatur VisibilityType.Visible.Warna tab diatur melalui: 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");

Mengkonfigurasi Setup Halaman

Worksheet.PageSetup mengungkapkan semua sifat yang berhubungan dengan cetakan. PageOrientationType untuk beralih antara potret dan lanskap. Gunakan PaperSizeType untuk memilih ukuran kertas. Tentukan area cetak dengan PrintArea, mengatur baris/kolom berulang dengan PrintTitleRows/PrintTitleColumns, dan menambahkan manual halaman istirahat dengan AddHorizontalPageBreak dan (b) 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);

Ukuran baris dan kolom

Akses Worksheet.Cells.Rows dengan indeks untuk mendapatkan a Row objek. set Row.Height (dalam titik) untuk mengontrol tinggi baris. Row.IsHidden ke true Untuk menyembunyikan baris. akses Worksheet.Cells.Columns dengan indeks untuk mendapatkan a Column objek. set Column.Width (dalam satuan karakter) dan 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);

Sel yang Gabung

Panggil. Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) untuk menggabungkan blok persegi panjang yang bersatu ke dalam satu sel. Sel yang digabungkan mewarisi nilai dari sel kiri atas. Gunakan Worksheet.Cells.MergedCells untuk membaca kembali semua wilayah yang digabungkan dalam buku kerja yang dimuat.

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);

Tips dan Praktik Terbaik

  • Penggunaan WorksheetCollection.ActiveSheetName untuk memastikan tab yang benar dipilih saat file dibuka di Excel.
  • Tetapkan margin halaman dalam inci (LeftMarginInch, TopMarginInch) ini adalah nilai-nilai titik mengambang, bukan bilangan bulat.
  • Menggunakan baris/kolom yang tersembunyi (IsHidden = true) menyimpan data mereka; menghapus baris akan menghapus data secara permanen.
  • Selalu menelepon. Workbook.Save() sekali pada akhir operasi batch daripada setelah setiap perubahan.
  • Merger sel dengan hemat dalam lembar data merged wilayah mencegah pemisahan dan otomatis-filter dari bekerja dengan benar di seluruh area yang bergabung.

Masalah Umum

IsuPenyebabnyaPerbaiki
WorkbookLoadException pada bebanZIP atau XML yang rusak di XLSXSet (set) LoadOptions.TryRepairPackage = true dan (b) TryRepairXml = true
Add(name) mengembalikan indeks yang salahMenggunakan nama lembar sebagai indeksAdd() mengembalikan indeks int; gunakan indeks itu untuk mengakses lembar baru
Tinggi baris tidak bertahanTinggi ditetapkan menjadi 0 atau nilai negatifGunakan nilai ganda positif seperti: 28d
Sel yang digabungkan menunjukkan nilai salahNilai yang ditulis ke sel di bagian kiri atas dari kisaran penggabunganTuliskan nilai ke sel kiri atas sebelum menelepon Cells.Merge()
Tidak muncul bagian halamanAddHorizontalPageBreak disebut setelah Save()Tetapkan istirahat halaman sebelum menelepon Save()

FAQ

Berapa banyak lembar kerja yang bisa saya tambahkan?

Format XLSX mendukung hingga 1024 lembar per buku kerja. Batas praktis tergantung pada memori yang tersedia dan ukuran file.

Bisakah saya menyalin lembar kerja di antara buku kerja?

Permukaan API saat ini tidak mengekspos sebuah CopyTo Cara untuk salinan lembar silang buku kerja. Mengunggah kedua file dan mentransfer data sel demi sel.

Bagaimana saya mengatur ulang lembar kerja?

Penggunaan WorksheetCollection akses indeks dan nama ulang lembar untuk mengubah urutan logis mereka. Pindah posisi langsung tidak ada di permukaan API saat ini.

Unit apa yang dilakukan? PageSetup digunakan untuk margin?

Semua properti margin (LeftMarginInch, TopMarginInch, dll) dalam inci sebagai double nilai.

Apakah Cells.Merge mengganti data sel yang ada?

Nilai sel di bagian atas kiri dipertahankan; nilai dalam sel yang disatukan lainnya dibersihkan.


Ringkasan Referensi API

Kelas / MetodeDeskripsi
WorkbookObyek akar membuat, memuat, menyimpan buku kerja
Workbook.WorksheetsMengembalikan WorksheetCollection
Workbook.Save(path)Persist workbook ke XLSX
WorksheetCollection.Add(name)Menambahkan lembar kerja baru dengan nama
WorksheetCollection.ActiveSheetNameTab aktif pada file terbuka
Worksheet.VisibilityTypeVisibilityType.Hidden atau: Visible
Worksheet.TabColorWarna tab (Color)
Worksheet.PageSetupPengaturan tata letak cetak
PageSetup.OrientationPageOrientationType.Landscape atau: Portrait
PageSetup.PaperSizePaperSizeType.PaperA4, dll.
PageSetup.AddHorizontalPageBreak(row)Masukkan halaman yang rusak secara horizontal
Cells.Rows[index].HeightTinggi baris dalam poin
Cells.Rows[index].IsHiddenBaris menyembunyikan/menampilkan
Cells.Columns[index].WidthLebar kolom dalam satuan karakter
Cells.Columns[index].IsHiddenKolom menyembunyikan/menampilkan
Cells.Merge(row, col, numRows, numCols)Gabungkan blok persegi panjang
Cells.MergedCellsDaftar wilayah yang bergabung dalam lembar ini
LoadOptions.TryRepairPackageMencoba perbaikan ZIP saat dimuat
LoadOptions.TryRepairXmlMencoba perbaikan XML saat dimuat
WorkbookLoadExceptionDibuang saat file tidak dapat dipulihkan
 Bahasa Indonesia