การทํางานกับการจัดการตารางกระดาษ

การทํางานกับการจัดการตารางกระดาษ

การทํางานกับการจัดการตารางกระดาษ

คู่มือนี้แสดงวิธีการสร้าง, อัตราบรรจุ, ปรับเปลี่ยนและบันทึก Excel หนังสือทํางานโดยใช้ Aspose.Cells FOSS สําหรับ Java คุณจะเรียนรู้ วิธีการทํางานกับ Workbook, WorksheetCollection, Worksheet, Cells,และ Cell กลุ่มสําหรับการจัดการตารางกระดาษจากปลายสู่ปลัด.


การ สร้าง หนังสือ งาน ใหม่

ใช้การสร้างที่ไม่มีอาร์กูเมนต์เพื่อสร้างตารางงานเปล่า. ตาระทํางานว่างเดียว ชื่อ Sheet1 จะเพิ่มโดยอัตโนมัติ.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println("Sheet name: " + sheet.getName()); // Sheet1

การอัตรานามของตารางงานจากไฟล์

ส่งทางไฟล์ไปยัง Workbook(fileName) คอนสตรัคเตอร์ที่จะเปิดตัวที่มีอยู่ .xlsx หรือ .ods แฟลิก ใช้ Workbook(fileName, options) การจัดส่ง LoadOptions เมื่อคุณต้องการ เพื่อควบคุมการตรวจจับรูปแบบหรือการจัดการคําผ่าน.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.LoadOptions;

// Simple load
Workbook workbook = new Workbook("data/report.xlsx");

// Load with explicit options
LoadOptions opts = new LoadOptions();
Workbook workbookWithOpts = new Workbook("data/report.xlsx", opts);

การอัตราบรรจุสมุดทํางานจากสตรีม

Workbook(stream) และ Workbook(stream, options) รับการใช้งานใดๆ java.io.InputStream. นี้เป็นประโยชน์เมื่อไฟล์มาจากทรัพยากรเครือข่าย, BLOB ของฐานข้อมูลหรือ in-memory array byte แอรเรย์ในความจํา.

import com.aspose.cells.foss.Workbook;
import java.io.FileInputStream;
import java.io.InputStream;

try (InputStream is = new FileInputStream("data/template.xlsx")) {
    Workbook workbook = new Workbook(is);
    System.out.println("Worksheets: " + workbook.getWorksheets().getCount());
}

การเข้าถึงและบริหารตารางงาน

Workbook.getWorksheets() กลับ a WorksheetCollection.การค้นหาใบตามอัตราการแสดง หรือ โดยชื่อ, ย้อนกลับไปบนทุกใบ และเพิ่มหรือลบแผ่นตามที่ต้องการ.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();

// Access by index
Worksheet first = sheets.get(0);
System.out.println(first.getName()); // Sheet1

// Add a named sheet
int idx = sheets.add("Summary");
Worksheet summary = sheets.get(idx);
summary.setName("Summary");

// Iterate all sheets
for (Worksheet ws : sheets) {
    System.out.println("Sheet: " + ws.getName());
}

// Remove a sheet by name
sheets.removeAt("Sheet1");
System.out.println("Remaining sheets: " + sheets.getCount());

การอ่านและเขียนค่าเซลล์

การเดินไปยังเซลล์โดยใช้ Worksheet.getCells(), ซึ่งคืน a Cells การเก็บสะสม. การค้นหา a Cell โดยชื่อ (เช่น. "A1") หรือโดยอัตราการแสดงตัวแถว/คอลัมน์ที่ใช้ศูนย์. ใช้ putValue() เพื่อเขียนค่าต้นกําเนิด และ getValue() / getStringValue() อ่าน ให้พวกเขากลับ.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
Cells cells = sheet.getCells();

// Write values
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Units Sold");

// Write by row/column index (0-based)
Cell a2 = cells.get(1, 0);
a2.putValue("Widget A");

Cell b2 = cells.get(1, 1);
b2.putValue(1200);

// Read back
System.out.println(a2.getStringValue()); // Widget A
System.out.println(b2.getValue());       // 1200

ไม่ได้โดยตรง ไลบรารีจัดการรูปแบบ MSG ใช้ MapiMessage.from_email_message() เพื่อแปลงจากอ็อบเจกต์ EmailMessage ของ RFC 5322

แจกรหัสสูตรให้กับเซลล์ผ่าน setFormula(). Aspose.Cells ตรวจสอบสูตร เมื่อหนังสือทํางานถูกบันทึก หรือเมื่อการคํานวณได้เริ่มต้นอย่างชัดเจน.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();

cells.get("A1").putValue(100);
cells.get("A2").putValue(200);

Cell a3 = cells.get("A3");
a3.setFormula("=SUM(A1:A2)");
System.out.println("Formula: " + a3.getFormula()); // =SUM(A1:A2)

การ จัด หนังสือ งาน

การใช้งาน Workbook.save(fileName) เพื่อเขียนหนังสือทํางานเข้าในแผ่นดิสก์. รูปแบบการออกคือ โดยการขยายไฟล์; การใช้งาน .xlsx สําหรับหนังสือ Excel.

import com.aspose.cells.foss.Workbook;

Workbook workbook = new Workbook();
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello");

// Save to file -- format inferred from .xlsx extension
workbook.save("output/result.xlsx");

การปล่อยทรัพยากร

Workbook เครื่องมือ AutoCloseable.ใช้บล็อกทดลองทรัพยากรเพื่อการันตีว่า แหล่งภายในของหนังสือทํางานจะปล่อยทันทีหลังจากการใช้งาน.

import com.aspose.cells.foss.Workbook;

try (Workbook workbook = new Workbook("data/large.xlsx")) {
    workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automatically

เคล็ดลับและปฏิบัติที่ดีที่สุด

  • ใช้การทดลอง-กับทรัพยากรเสมอ (try (Workbook wb = new Workbook(...))) สําหรับขนาดใหญ่ ไฟล์เพื่อหลีกเลี่ยงการเปิดมือไฟล์.
  • Prefer cells.get(row, column) ผ่านไป cells.get(cellName) ในลูปร้อน; อัตราเต็มเกินการใช้งาน หลีกเลี่ยงการพารัสชื่อเซลล์ซ้ํา ๆ.
  • Call workbook.getWorksheets().getCount() ก่อนการเข้าถึงใบโดยอัตรานิยมเพื่อหลีกเลี่ยง IndexOutOfBoundsException.
  • ชื่อใบของคุณอย่างชัดเจนด้วย setName() หลังจากนั้น add() ดังนั้น โค้ดล่างสามารถ ดูชื่อของพวกเขามาแทนที่ดูในอินเด็กซ์ที่สับสน.
  • อย่าพึ่งผลการใช้สูตรทันทีหลังจากที่ยาถูกนํามาใช้ setFormula(); เก็บก่อนหรือ โหลดใหม่ถ้าคุณต้องการค่าคํานวณในช่วงที่เดียวกัน.

ปัญหาทั่วไป

IssueCauseแก้ไข
WorkbookLoadException ในวันที่ new Workbook(fileName)เส้นทางไฟล์ไม่ถูกต้อง หรือ ไฟล์ล็อคยืนยันว่าเส้นทางมีอยู่และสามารถอ่านได้; ปิดแอพลิเคชั่นอื่น ๆ ที่ถือไฟล์
get(index) โยน IndexOutOfBoundsExceptionอินเด็กซ์ใบเกินกว่า getCount() - 1Check sheets.getCount() ก่อนเข้าถึง; ใช้งาน add() เพื่อสร้างใบใหม่
เซลล์สูตรกลับว่าง getValue()สูตรที่ไม่ได้คํานวณอัตโนมัติในความจําเก็บหนังสือทํางานและโหลดมันใหม่เพื่อการได้รับผลสูตร
ไฟล์ออกกําลังการทํางานเสียหายหลังจาก save()ขยายไฟล์ผิดการันตีว่าชื่อไฟล์จบด้วย .xlsx; รูปแบบถูกสรุปจากการขยาย

FAQ

ผมเปลี่ยนชื่อตารางงานยังไง?

รับข้อมูลจาก Worksheet อัตราตามอัณฑ์จาก WorksheetCollection และโทรหา setName(name) ด้วยชื่อการแสดงใหม่:

workbook.getWorksheets().get(0).setName("Sales Data");

ผมตรวจสอบได้อย่างไรว่า หนังสืองานมีกี่ใบ?

Call getCount() ในวันที่ WorksheetCollection กลับโดย Workbook.getWorksheets() เพื่อให้ได้จํานวนใบทํางานทั้งหมด:

int count = workbook.getWorksheets().getCount();

ผมสามารถเพิ่มใบหลายแผ่นได้ในครั้งเดียวหรือไม่?

ไม่ โทรหาฉันนะ worksheets.add(sheetName) แต่ละการเรียกคืนตัวอัตราของตาราง ใบที่สร้างใหม่.

วิธีการตรวจสอบประเภทของค่าเซลล์?

รับข้อมูลจาก Cell โดยชื่อและการเรียก getType(), ซึ่งคืน a CellValueType enum value: ค่าที่ใช้ในการทําการ:

Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum value

คําอธิบายการพบบ่อย API

ประเภท / กลไกDescription
Workbook()สร้างหนังสือทํางานเปล่าด้วยใบว่างเดียว
Workbook(fileName)อัตราการอัดสมุดทํางานจากเส้นทางไฟล์
Workbook(stream)อัตราการอัดสมุดทํางานจาก InputStream
Workbook(fileName, options)อัตราการอัดสมุดทํางานด้วย LoadOptions
Workbook.getWorksheets()กลับตัวเลข WorksheetCollection
Workbook.save(fileName)เก็บเป็นไฟล์ (รูปแบบที่สรุปจากขยาย)
Workbook.save(stream, format)เก็บไปยังสตรีมที่มีคําพูดชัดเจน SaveFormat
WorksheetCollection.get(index)ใบตอบแทนตามอัตราฐานศูนย์
WorksheetCollection.get(name)ใบการคืนตามชื่อ
WorksheetCollection.add(sheetName)เพิ่มใบที่มีชื่อ; ย้อนกลับอินเด็กซ์ของมัน
WorksheetCollection.getCount()จํานวนใบในหนังสือทํางาน
WorksheetCollection.removeAt(sheetName)ลบแผ่นตามชื่อ
Worksheet.getCells()กลับตัวเลข Cells การเก็บของใบนี้
Worksheet.getName() / setName()ได้รับหรือกําหนดชื่อตาราง tab
Cells.get(cellName)กลับ a Cell โดยชื่อ (เช่น “A1”)
Cells.get(row, column)กลับ a Cell โดยแถว/คอลัมน์ที่ฐานศูนย์
Cell.putValue(value)เขียนค่าในเซลล์
Cell.getValue()อ่านค่าเซลล์เป็น Object
Cell.getStringValue()อ่านค่าเซลล์เป็น a String
Cell.setFormula(formula)วางรหัสสูตร (เช่น “=SUM(A1:A2)”)
LoadOptionsการตั้งค่าสําหรับการอัดหนังสือทํางาน
SaveFormatจํานวนของพิสูจน์รูปแบบ (รูปทรงถูกสรุปจากขยายไฟล์; ไม่ผ่านไปยัง save())

See Also

 ภาษาไทย