ทำงานกับชั้นโมเดล Workbook

ทำงานกับชั้นโมเดล Workbook

ทำงานกับชั้นโมเดลของสมุดงาน

ใต้ API ที่ผู้ใช้มองเห็น, crate จะเก็บชั้นโมเดลข้อมูลธรรมดาที่สะท้อนแพ็กเกจ XLSX: struct ของค่า, โมเดลกฎ, และที่เก็บข้อมูลร่วม. แอปพลิเคชันส่วนใหญ่จะไม่สัมผัสประเภทเหล่านี้โดยตรง, แต่จะปรากฏเมื่อคุณตรวจสอบสมุดงานที่โหลดไว้ในเชิงลึกหรือมีส่วนร่วมกับ crate เอง.


ประเภทค่า

ColorValue เก็บส่วนประกอบสี ARGB เป็นฟิลด์ a, r, g, b แบบธรรมดา, พร้อมกับ equals และ get_hash_code สำหรับการเปรียบเทียบ. การจัดรูปแบบตัวเลขระดับโมเดลอยู่ใน NumberFormatValue, ซึ่งสนับสนุน clone เพื่อคัดลอกคำนิยามรูปแบบระหว่างบันทึกโมเดล.


โมเดลกฎ

กฎคุณภาพข้อมูลมีแบบจำลองคู่: ValidationModel เปิดเผย areas, validation_type, alert_style, operator ของกฎ, และนิพจน์ formula1 / formula2 เป็นฟิลด์; FormatConditionModel และ ConditionalFormattingModel มีบทบาทเช่นเดียวกันสำหรับบันทึกการจัดรูปแบบตามเงื่อนไข. สิ่งเหล่านี้สร้างขึ้นด้วย default และเติมค่าแบบฟิลด์ต่อฟิลด์.


ที่เก็บสตริงร่วม

ไฟล์ XLSX จัดเก็บข้อความเซลล์ที่ซ้ำกันในตาราง shared-strings. โมเดล SharedStringRepository จำลองเป็น interner:

  • intern เพิ่มสตริงและคืนดัชนีของมัน (ใช้รายการที่มีอยู่แล้วซ้ำ),
  • try_get_value แปลงดัชนีกลับเป็นสตริงของมัน,
  • clear รีเซ็ตรีโพสทอรี.

Diagnostics

DiagnosticBag รวบรวมปัญหาแบบมีโครงสร้างผ่าน add ระหว่างการดำเนินการของโมเดล ระดับ API ข้อมูลเดียวกันจะถูกส่งถึงคุณผ่าน LoadDiagnostics เมื่อโหลดเวิร์กบุ๊ก — ดู ภาพรวมคุณสมบัติ.


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

  • ควรใช้ API ที่ผู้ใช้มองเห็น (Workbook, Worksheet, cell collections) — ไม่จำเป็นต้องใช้ชั้นโมเดลสำหรับงานสเปรดชีตทั่วไป.
  • ถือโครงสร้างโมเดลเป็นบันทึกข้อมูล: สร้างด้วย default, แล้วตั้งค่าฟิลด์อย่างชัดเจน.
  • เมื่อทำการตรวจสอบไฟล์ที่มีรูปแบบผิดพลาด ให้รวมแฟล็กการซ่อมแซม LoadOptions กับการวินิจฉัยที่ตัวโหลดรายงาน.

ปัญหาทั่วไป

ปัญหาสาเหตุการแก้ไข
สตริงที่แชร์ซ้ำกันข้ามการทำงานของ internerส่งข้อความผ่าน SharedStringRepository.intern
กฎการตรวจสอบถูกละเลยฟิลด์โมเดลไม่ครบตั้งค่า validation_type, operator และ formula1 บน ValidationModel

FAQ

ฉันต้องการชั้นโมเดลเพื่อเขียนสเปรดชีตหรือไม่?

ไม่. Workbook API ครอบคลุมการสร้าง, การแก้ไข, และการบันทึกเวิร์กบุ๊ก; ชั้นโมเดลเป็นพื้นฐานของมัน.

ทำไมโครงสร้างโมเดลจึงใช้คอนสตรัคเตอร์ default?

พวกมันเป็นบันทึกข้อมูลธรรมดาที่สะท้อนโครงสร้าง XLSX — default ให้บันทึกว่างเปล่าที่คุณเติมค่าฟิลด์ทีละฟิลด์.


API Reference สรุป

คลาส/เมธอดคำอธิบาย
ColorValueบันทึกสี ARGB (a, r, g, b)
NumberFormatValue.cloneคัดลอกการกำหนดรูปแบบตัวเลข
ValidationModelบันทึกกฎการตรวจสอบ (พื้นที่, ตัวดำเนินการ, สูตร)
FormatConditionModel.defaultบันทึกกฎการจัดรูปแบบตามเงื่อนไขที่ว่างเปล่า
SharedStringRepository.internทำ intern สตริงและส่งคืนดัชนีของมัน
SharedStringRepository.try_get_valueแก้ไขดัชนีที่ interned
DiagnosticBag.addบันทึกการวินิจฉัยแบบมีโครงสร้าง

ดูเพิ่มเติม

 ภาษาไทย