ใช้สูตร Worksheet ของแผนภูมิในงานนำเสนอด้วย PHP

ภาพรวม

Worksheet ของแผนภูมิคือแหล่งข้อมูลที่อยู่เบื้องหลังแผนภูมิในงานนำเสนอ มันเก็บชื่อหมวดหมู่และชื่อชุดข้อมูลพร้อมกับค่าตัวเลขที่แผนภูมิแสดง ใน Aspose.Slides worksheet นี้สามารถเข้าถึงได้ผ่าน chart data workbook ซึ่งให้คุณทำงานกับข้อมูลแผนภูมิโดยใช้โปรแกรมได้

บทความนี้อธิบายวิธีใช้สูตรใน worksheet ของข้อมูลแผนภูมิเพื่อให้ค่าของเซลล์ถูกคำนวณและอัปเดตโดยอัตโนมัติ แทนการป้อนค่าด้วยตนเอง จะแสดงวิธีกำหนดสูตร ใช้การอ้างอิงแบบ A1‑style และ R1C1‑style คำนวนสูตรใน workbook ใหม่ และทำงานกับค่าคงที่ ตัวดำเนินการ การอ้างอิงเซลล์ และฟังก์ชันที่กำหนดไว้ล่วงหน้าซึ่งสนับสนุนสำหรับ worksheet ของแผนภูมิในงานนำเสนอ

เกี่ยวกับสูตรสเปรดชีตของแผนภูมิในงานนำเสนอ

Chart spreadsheet (หรือ chart worksheet) ในงานนำเสนอคือแหล่งข้อมูลของแผนภูมิ Chart spreadsheet มีข้อมูลที่แสดงบนแผนภูมิในรูปแบบกราฟิก เมื่อคุณสร้างแผนภูมิใน PowerPoint worksheet ที่เชื่อมโยงกับแผนภูมินี้จะถูกสร้างโดยอัตโนมัติเช่นกัน Worksheet ของแผนภูมิถูกสร้างสำหรับทุกประเภทของแผนภูมิ: แผนภูมิเส้น, แผนภูมิแท่ง, แผนภูมิลูกศรแบบวงกลม, แผนภูมิวงกลม ฯลฯ เพื่อตรวจดู chart spreadsheet ใน PowerPoint ให้ดับเบิ้ลคลิกที่แผนภูมิ:

todo:image_alt_text

Chart spreadsheet มีชื่อขององค์ประกอบแผนภูมิ (Category Name: Category1, Serie Name) และตารางข้อมูลตัวเลขที่สอดคล้องกับหมวดหมู่และชุดข้อมูลเหล่านั้น โดยค่าเริ่มต้นเมื่อคุณสร้างแผนภูมิใหม่ – ข้อมูล chart spreadsheet จะถูกตั้งเป็นข้อมูลเริ่มต้น จากนั้นคุณสามารถเปลี่ยนข้อมูลใน worksheet ด้วยมือได้

โดยทั่วไปแผนภูมิแสดงข้อมูลที่ซับซ้อน (เช่น นักวิเคราะห์การเงิน, นักวิทยาศาสตร์) ซึ่งมีเซลล์ที่คำนวณจากค่าของเซลล์อื่นหรือจากข้อมูลแบบไดนามิก การคำนวณค่าของเซลล์ด้วยตนเองและใส่ค่าแบบคงที่ลงในเซลล์ทำให้การเปลี่ยนแปลงในอนาคตทำได้ยาก หากคุณเปลี่ยนค่าของเซลล์หนึ่ง เซลล์ที่พึ่งพิงค่าดังกล่าวทั้งหมดต้องได้รับการอัปเดตด้วย นอกจากนี้ข้อมูลในตารางอาจพึ่งพาข้อมูลจากตารางอื่น ทำให้โครงสร้างข้อมูลของงานนำเสนอซับซ้อนและต้องการการอัปเดตอย่างง่ายและยืดหยุ่น

Chart spreadsheet formula ในงานนำเสนอคือ นิพจน์ที่คำนวณและอัปเดตข้อมูล chart spreadsheet โดยอัตโนมัติ สูตรสเปรดชีตกำหนดตรรกะการคำนวณข้อมูลสำหรับเซลล์หรือกลุ่มเซลล์หนึ่งๆ สูตรสเปรดชีตอาจเป็นสูตรคณิตศาสตร์หรือสูตรตรรกะ ซึ่งใช้: การอ้างอิงเซลล์, ฟังก์ชันคณิตศาสตร์, ตัวดำเนินการตรรกะ, ตัวดำเนินการคณิตศาสตร์, ฟังก์ชันการแปลง, ค่าคงที่สตริง ฯลฯ นิยามของสูตรจะเขียนลงในเซลล์ และเซลล์นั้นจะไม่บรรจุค่าธรรมดา สูตรสเปรดชีตคำนวณค่าและคืนค่ากลับ แล้วค่าที่ได้จะถูกกำหนดให้กับเซลล์ สูตรสเปรดชีตในงานนำเสนอเทียบเท่ากับสูตร Excel และสนับสนุนฟังก์ชัน, ตัวดำเนินการ, ค่าคงที่เริ่มต้นเดียวกันสำหรับการใช้งาน

ใน Aspose.Slides chart spreadsheet แทนด้วยเมธอด
ChartData::getChartDataWorkbook ของประเภท
ChartDataWorkbook
สูตรสเปรดชีตสามารถกำหนดและเปลี่ยนได้ด้วยเมธอด
ChartDataCell::setFormula
ฟังก์ชันต่อไปนี้ได้รับการสนับสนุนสำหรับสูตรใน Aspose.Slides:

  • ค่าคงที่ตรรกะ
  • ค่าคงที่เชิงตัวเลข
  • ค่าคงที่สตริง
  • ค่าคงที่ข้อผิดพลาด
  • ตัวดำเนินการคณิตศาสตร์
  • ตัวดำเนินการเปรียบเทียบ
  • การอ้างอิงเซลล์แบบ A1‑style
  • การอ้างอิงเซลล์แบบ R1C1‑style
  • ฟังก์ชันที่กำหนดไว้ล่วงหน้า

โดยทั่วไปสเปรดชีตจะเก็บค่าผลลัพธ์ของสูตรที่คำนวณล่าสุด หากหลังจากโหลดงานนำเสนอข้อมูลแผนภูมิไม่ได้เปลี่ยนแปลง – ChartDataCell::getValue จะส่งค่าที่เก็บไว้เมื่ออ่านค่า แต่หากข้อมูลสเปรดชีตถูกเปลี่ยนแปลง ในระหว่างการอ่านค่า ระบบจะโยนข้อยกเว้น CellUnsupportedDataException สำหรับสูตรที่ไม่รองรับ นั่นเป็นเพราะเมื่อสูตรถูกแยกวิเคราะห์สำเร็จ การกำหนดความขึ้นต่อกันของเซลล์จะถูกระบุและความถูกต้องของค่าที่สุดท้ายจะได้รับการตรวจสอบ แต่หากสูตรไม่สามารถแยกวิเคราะห์ได้ ความถูกต้องของค่าของเซลล์จะไม่สามารถรับประกันได้

เพิ่มสูตรสเปรดชีตของแผนภูมิในงานนำเสนอ

ขั้นแรกให้เพิ่มแผนภูมิไปยังสไลด์แรกของงานนำเสนอใหม่ด้วยเมธอด
ShapeCollection::addChart
Worksheet ของแผนภูมิจะแสดงขึ้นโดยอัตโนมัติและสามารถเข้าถึงได้ด้วยเมธอด
ChartData::getChartDataWorkbook :

  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 150, 150, 500, 300);
    $workbook = $chart->getChartData()->getChartDataWorkbook();
    # ...
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

มาเขียนค่าบางอย่างลงในเซลล์ด้วยเมธอด
ChartDataCell::setValue ของประเภท Object ซึ่งหมายความว่าคุณสามารถกำหนดค่าใดก็ได้:

  $workbook->getCell(0, "F2")->setValue(-2.5);
  $workbook->getCell(0, "G3")->setValue(6.3);
  $workbook->getCell(0, "H4")->setValue(3);

ตอนนี้เพื่อเขียนสูตรลงในเซลล์ คุณสามารถใช้เมธอด
ChartDataCell::setFormula

Note: เมธอด ChartDataCell::setFormula ใช้สำหรับกำหนดการอ้างอิงเซลล์แบบ A1‑style

เพื่อกำหนดสูตรแบบ R1C1 คุณสามารถใช้เมธอด ChartDataCell::setR1C1Formula

จากนั้นหากคุณลองอ่านค่าจากเซลล์ B2 และ C2 ค่าจะถูกคำนวณออกมา:

  $value1 = $cell1->getValue();// 7.8

  $value2 = $cell2->getValue();// 2.1


ค่าคงที่ตรรกะ

คุณสามารถใช้ค่าคงที่ตรรกะเช่น FALSE และ TRUE ในสูตรของเซลล์ได้:

  $workbook->getCell(0, "A2")->setValue(false);
  $cell = $workbook->getCell(0, "B2");
  $cell->setFormula("A2 = TRUE");
  $value = $cell->getValue();// ค่าที่ได้เป็นบูลีน "false"


ค่าคงที่เชิงตัวเลข

สามารถใช้ตัวเลขในรูปแบบทั่วไปหรือรูปแบบเชิงวิทยาศาสตร์เพื่อสร้างสูตรสเปรดชีตของแผนภูมิได้:

  $workbook->getCell(0, "A2")->setFormula("1 + 0.5");
  $workbook->getCell(0, "B2")->setFormula(".3 * 1E-2");

ค่าคงที่สตริง

ค่าคงที่สตริง (หรือ literal) คือค่าที่ใช้ตามที่เป็นและไม่เปลี่ยนแปลง ค่าคงที่สตริงอาจเป็น: วันที่, ข้อความ, ตัวเลข ฯลฯ:

  $workbook->getCell(0, "A2")->setFormula("\"abc\"");
  $workbook->getCell(0, "B2")->setFormula("\"2/3/2020 12:00\"");

ค่าคงที่ข้อผิดพลาด

บางครั้งสูตรไม่สามารถคำนวณผลลัพธ์ได้ ในกรณีนั้น รหัสข้อผิดพลาดจะแสดงในเซลล์แทนค่าปกติ แต่ละประเภทของข้อผิดพลาดมีรหัสเฉพาะ:

  • #DIV/0! – สูตรพยายามหารด้วยศูนย์
  • #GETTING_DATA – อาจปรากฏบนเซลล์ขณะที่ค่ากำลังคำนวณอยู่
  • #N/A – ข้อมูลหายหรือไม่พร้อมใช้งาน สาเหตุอาจเป็น: เซลล์ที่ใช้ในสูตรว่างเปล่า, มีอักขระช่องว่างเพิ่ม, ตัวสะกดผิด ฯลฯ
  • #NAME? – ไม่พบเซลล์หรือวัตถุสูตรด้วยชื่อนั้น
  • #NULL! – เกิดขึ้นเมื่อสูตรมีข้อผิดพลาด เช่น (,) หรือมีอักขระช่องว่างแทนเครื่องหมายโคลอน (:)
  • #NUM! – ตัวเลขในสูตรอาจไม่ถูกต้อง ยาวเกินไป หรือสั้นเกินไป ฯลฯ
  • #REF! – การอ้างอิงเซลล์ไม่ถูกต้อง
  • #VALUE! – ชนิดค่าที่ไม่คาดคิด ตัวอย่างเช่น มีค่าสตริงใส่ในเซลล์ตัวเลข
  $cell = $workbook->getCell(0, "A2");
  $cell->setFormula("2 / 0");
  $value = $cell->getValue();// ค่าที่ได้เป็นสตริง "#DIV/0!"


ตัวดำเนินการคณิตศาสตร์

คุณสามารถใช้ตัวดำเนินการคณิตศาสตร์ทั้งหมดในสูตร worksheet ของแผนภูมิได้:

Operator Meaning Example
+ (plus sign) Addition or unary plus 2 + 3
- (minus sign) Subtraction or negation 2 - 3
-3
* (asterisk) Multiplication 2 * 3
/ (forward slash) Division 2 / 3
% (percent sign) Percent 30%
^ (caret) Exponentiation 2 ^ 3

Note: เพื่อเปลี่ยนลำดับการประมวลผล ให้ใส่วงเล็บครอบส่วนของสูตรที่ต้องการคำนวณก่อน

ตัวดำเนินการเปรียบเทียบ

คุณสามารถเปรียบเทียบค่าของเซลล์ด้วยตัวดำเนินการเปรียบเทียบ เมื่อตัวดำเนินการเหล่านี้เปรียบเทียบค่า ผลลัพธ์จะเป็นค่าตรรกะ TRUE หรือ FALSE:

Operator Meaning Meaning
= (equal sign) Equal to A2 = 3
<> (not equal sign) Not equal to A2 <> 3
> (greater than sign) Greater than A2 > 3
>= (greater than or equal to sign) Greater than or equal to A2 >= 3
< (less than sign) Less than A2 < 3
<= (less than or equal to sign) Less than or equal to A2 <= 3

การอ้างอิงเซลล์แบบ A1‑Style

A1‑style cell references ใช้สำหรับ worksheet ที่คอลัมน์มีตัวอักษรเป็นตัวระบุ (เช่น “A") และแถวมีตัวเลขเป็นตัวระบุ (เช่น “1") การอ้างอิงแบบ A1‑style สามารถใช้ได้ตามรูปแบบต่อไปนี้:

Cell reference Example
Absolute Relative Mixed
Cell $A$2 A2

A$2

$A2

Row $2:$2 2:2 -
Column $A:$A A:A -
Range $A$2:$C$4 A2:C4

$A$2:C4

A$2:$C4

ตัวอย่างการใช้การอ้างอิงเซลล์แบบ A1‑style ในสูตร:

  $workbook->getCell(0, "A2")->setFormula("C3 + SUM(F2:H5)");

การอ้างอิงเซลล์แบบ R1C1‑Style

R1C1‑style cell references ใช้สำหรับ worksheet ที่ทั้งแถวและคอลัมน์มีตัวเลขเป็นตัวระบุ การอ้างอิงแบบ R1C1‑style สามารถใช้ได้ตามรูปแบบต่อไปนี้:

Cell reference Example
Absolute Relative Mixed
Cell R2C3 R[2]C[3] R2C[3]
R[2]C3
Row R2 R[2] -
Column C3 C[3] -
Range R2C3:R5C7 R[2]C[3]:R[5]C[7] R2C3:R[5]C[7]
R[2]C3:R5C[7]

ตัวอย่างการใช้การอ้างอิงเซลล์แบบ A1‑style ในสูตร:

  $workbook->getCell(0, "A2")->setR1C1Formula("R2C4 + SUM(R5C6:R7C9)");

ฟังก์ชันที่กำหนดไว้ล่วงหน้า

มีฟังก์ชันที่กำหนดไว้ล่วงหน้า ที่สามารถใช้ในสูตรเพื่อความง่ายในการใช้งาน ฟังก์ชันเหล่านี้สรุปการทำงานที่ใช้บ่อยที่สุด เช่น:

  • ABS
  • AVERAGE
  • CEILING
  • CHOOSE
  • CONCAT
  • CONCATENATE
  • DATE (ระบบวันที่ 1900)
  • DAYS
  • FIND
  • FINDB
  • IF
  • INDEX (reference form)
  • LOOKUP (vector form)
  • MATCH (vector form)
  • MAX
  • SUM
  • VLOOKUP

FAQ

สูตรแผนภูมิสามารถอ้างอิงไฟล์ Excel ภายนอกเป็นแหล่งข้อมูลได้หรือไม่?

ใช่ Aspose.Slides รองรับ workbook ภายนอกเป็น chart’s data source ซึ่งทำให้คุณสามารถใช้สูตรจากไฟล์ XLSX นอกงานนำเสนอได้

สูตรของแผนภูมิสามารถอ้างอิงแผ่นงานภายใน workbook เดียวกันตามชื่อแผ่นได้หรือไม่?

ใช่ สูตรจะทำตามโมเดลการอ้างอิงของ Excel มาตรฐาน ดังนั้นคุณสามารถอ้างอิงแผ่นงานอื่นใน workbook เดียวกันหรือ workbook ภายนอกได้ สำหรับการอ้างอิงภายนอกให้ระบุเส้นทางและชื่อ workbook ตามไวยากรณ์ของ Excel