ใช้สูตรแผ่นงานแผนภูมิในงานนำเสนอด้วย Python
ภาพรวม
PowerPoint charts โดยทั่วไปจะเก็บข้อมูลต้นทางในแผ่นงานที่ฝังอยู่ ใน Aspose.Slides for Python via .NET คุณสามารถเข้าถึงแผ่นงานนั้นผ่าน chart data workbook, เขียนค่าตั้งต้น, กำหนดสูตรให้กับเซลล์, คำนวณสูตรที่สนับสนุน, และใช้เซลล์ที่คำนวณแล้วเป็นข้อมูลของแผนภูมิ
บทความนี้อธิบายกระบวนการทำงานของสูตรอย่างครบถ้วน: สร้างแผนภูมิ, เติมข้อมูลในแผ่นงาน, กำหนดสูตรแบบ A1 หรือ R1C1, คำนวณสูตรใหม่, อ่านค่าที่คำนวณได้, เชื่อมต่อเซลล์เหล่านั้นกับชุดข้อมูลของแผนภูมิ, และบันทึกงานนำเสนอ นอกจากนี้ยังอธิบายไวยากรณ์สูตรที่สนับสนุน, ชุดฟังก์ชันในตัว, ค่าที่แคช, สูตรที่ไม่สนับสนุน, และข้อผิดพลาดเฉพาะของสเปรดชีต
แผ่นงานกราฟและสูตร
แผ่นงานกราฟประกอบด้วยหมวดหมู่, ชื่อชุดข้อมูล, และค่าที่ใช้โดยแผนภูมิ ใน PowerPoint คุณสามารถตรวจสอบแผ่นงานได้โดยเปิด chart data editor:

ใน Aspose.Slides แผ่นงานถูกเปิดเผยผ่าน สมุดงานข้อมูลแผนภูมิ。ใช้คุณสมบัติ formula สำหรับสูตรแบบ A1 และคุณสมบัติ r1c1_formula สำหรับสูตรแบบ R1C1 หลังจากเปลี่ยนเซลล์อินพุตหรือสูตร ให้เรียก calculate_formulas เพื่อคำนวณสูตรที่สนับสนุนและอัปเดตค่าของเซลล์ที่สอดคล้องกัน
เซลล์ที่คำนวณแล้วยังคงเปิดเผยผลลัพธ์ผ่านคุณสมบัติ value สิ่งนี้สำคัญเมื่อคุณต้องการตรวจสอบผลลัพธ์ของสูตรในโค้ดหรือใช้เซลล์เป็นจุดข้อมูลของแผนภูมิ
สร้างแผนภูมิและคำนวณสูตรในแผ่นงาน
ตัวอย่างต่อไปนี้แสดงกระบวนการทำงานแบบครบวงจร มันสร้างแผนภูมิคอลัมน์แบบคลัสเตอร์, ลบข้อมูลตัวอย่าง, เขียนค่ารายได้และค่าใช้จ่ายรายไตรมาส, คำนวณกำไรด้วยสูตร, อ่านผลลัพธ์, ใช้เซลล์ที่คำนวณเป็นค่าของแผนภูมิ, และบันทึกงานนำเสนอ
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 600, 350)
workbook = chart.chart_data.chart_data_workbook
worksheet_index = 0
chart.chart_data.series.clear()
chart.chart_data.categories.clear()
workbook.clear(worksheet_index)
category1 = workbook.get_cell(worksheet_index, "A2", "Q1")
category2 = workbook.get_cell(worksheet_index, "A3", "Q2")
category3 = workbook.get_cell(worksheet_index, "A4", "Q3")
workbook.get_cell(worksheet_index, "B1", "Revenue")
workbook.get_cell(worksheet_index, "C1", "Expenses")
workbook.get_cell(worksheet_index, "D1", "Profit")
workbook.get_cell(worksheet_index, "B2").value = 120.0
workbook.get_cell(worksheet_index, "C2").value = 80.0
workbook.get_cell(worksheet_index, "B3").value = 150.0
workbook.get_cell(worksheet_index, "C3").value = 95.0
workbook.get_cell(worksheet_index, "B4").value = 135.0
workbook.get_cell(worksheet_index, "C4").value = 110.0
profit1 = workbook.get_cell(worksheet_index, "D2")
profit2 = workbook.get_cell(worksheet_index, "D3")
profit3 = workbook.get_cell(worksheet_index, "D4")
profit1.formula = "B2-C2"
profit2.formula = "B3-C3"
profit3.formula = "B4-C4"
workbook.calculate_formulas()
q1_profit = profit1.value # 40
q2_profit = profit2.value # 55
q3_profit = profit3.value # 25
print(f"Q1 profit: {q1_profit}")
print(f"Q2 profit: {q2_profit}")
print(f"Q3 profit: {q3_profit}")
chart.chart_data.categories.add(category1)
chart.chart_data.categories.add(category2)
chart.chart_data.categories.add(category3)
profit_series = chart.chart_data.series.add(workbook.get_cell(worksheet_index, "D1"), chart.type)
profit_series.data_points.add_data_point_for_bar_series(profit1)
profit_series.data_points.add_data_point_for_bar_series(profit2)
profit_series.data_points.add_data_point_for_bar_series(profit3)
profit_series.labels.default_data_label_format.show_value = True
presentation.save("chart-formulas.pptx", slides.export.SaveFormat.PPTX)
จุดข้อมูลของแผนภูมิอ้างอิง D2:D4 ดังนั้นแผนภูมิจะใช้ค่ากำไรที่คำนวณแล้ว ไม่มีการเรียกเมธอดรีเฟรชแผนภูมิแยกต่างหากในกระบวนการนี้: คำนวณสมุดงานก่อน, จากนั้นใช้หรือบันทึกข้อมูลแผนภูมิที่ชี้ไปยังเซลล์ที่คำนวณแล้ว
ใช้สูตรแบบ A1
การระบุแบบ A1 ระบุคอลัมป์ด้วยตัวอักษรและแถวด้วยตัวเลข กำหนดนิพจน์แบบ A1 ผ่าน IChartDataCell.formula
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 300)
workbook = chart.chart_data.chart_data_workbook
workbook.get_cell(0, "C3").value = 10
workbook.get_cell(0, "F2").value = 2
workbook.get_cell(0, "G2").value = 3
workbook.get_cell(0, "H2").value = 4
cell = workbook.get_cell(0, "A2")
cell.formula = "C3+SUM(F2:H2)"
workbook.calculate_formulas()
value = cell.value # 19
รูปแบบการอ้างอิง A1 ที่พบได้บ่อยคือ:
| อ้างอิง | สัมพัทธ์ | คงที่ | ผสม |
|---|---|---|---|
| เซลล์ | A2 |
$A$2 |
A$2, $A2 |
| แถว | 2:2 |
$2:$2 |
— |
| คอลัมน์ | A:A |
$A:$A |
— |
| ช่วง | A2:C4 |
$A$2:$C$4 |
A$2:$C4, $A2:C$4 |
การอ้างอิงสัมพัทธ์อาจเปลี่ยนแปลงเมื่อสูตรถูกย้ายหรือคัดลอกโดยแอปสเปรดชีต การอ้างอิงคงที่จะคงค่าพิกัดทั้งสองคงที่ ส่วนการอ้างอิงผสมจะคงแค่แถวหรือคอลัมน์เดียว
ใช้สูตรแบบ R1C1
การระบุแบบ R1C1 ระบุทั้งแถวและคอลัมน์ด้วยตัวเลข การอ้างอิงสัมพัทธ์ใช้การเยื้องในวงเล็บเหลี่ยม กำหนดไวยากรณ์นี้ผ่าน IChartDataCell.r1c1_formula
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 300)
workbook = chart.chart_data.chart_data_workbook
workbook.get_cell(0, "B2").value = 12
workbook.get_cell(0, "C2").value = 5
cell = workbook.get_cell(0, "D2")
cell.r1c1_formula = "RC[-2]-RC[-1]"
workbook.calculate_formulas()
value = cell.value # 7
รูปแบบการอ้างอิง R1C1 ที่พบได้บ่อยคือ:
| อ้างอิง | สัมพัทธ์ | คงที่ | ผสม |
|---|---|---|---|
| เซลล์ | R[2]C[3] |
R2C3 |
R2C[3], R[2]C3 |
| แถว | R[2] |
R2 |
— |
| คอลัมน์ | C[3] |
C3 |
— |
| ช่วง | R[2]C[3]:R[5]C[7] |
R2C3:R5C7 |
R2C3:R[5]C[7], R[2]C3:R5C[7] |
เช่น ในเซลล์ D2, RC[-2] หมายถึงเซลล์ในแถวเดียวกันสองคอลัมน์ไปทางซ้าย (B2)
ค่าคงที่และตัวดำเนินการสูตร
ตัวตรวจสอบสูตรในตัวสนับสนุนค่าตรรกะ, ตัวเลขเชิงตำแหน่ง, สตริง, ค่าข้อผิดพลาดของสเปรดชีต, ตัวดำเนินการคณิตศาสตร์, และตัวดำเนินการเปรียบเทียบ
ค่าคงที่และลิเทรัล
| ประเภท | ตัวอย่าง | หมายเหตุ |
|---|---|---|
| ตรรกะ | TRUE, FALSE |
สามารถใช้โดยตรงในนิพจน์ตรรกะเช่น A2=TRUE |
| ตัวเลข | 1, 0.5, .3, 1E-2 |
รองรับรูปแบบธรรมดาและวิทยาศาสตร์ |
| สตริง | "abc", "2/3/2020 12:00" |
ตัวอักษรลิตเชอร์อยู่ในเครื่องหมายอัญประกาศคู่ภายในสูตร |
| ผลลัพธ์ข้อผิดพลาด | #DIV/0!, #N/A, #REF! |
สูตรที่ถูกต้องอาจให้ค่าข้อผิดพลาดของสเปรดชีตแทนผลลัพธ์ปกติ |
ตัวอย่างนี้ใช้ค่าคงที่หลายประเภท:
import aspose.slides as slides
import aspose.slides.charts as charts
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 300)
workbook = chart.chart_data.chart_data_workbook
workbook.get_cell(0, "A2").value = False
workbook.get_cell(0, "B2").formula = "A2=TRUE"
workbook.get_cell(0, "C2").formula = "1+0.5"
workbook.get_cell(0, "D2").formula = ".3*1E-2"
workbook.get_cell(0, "E2").formula = "\"abc\""
workbook.get_cell(0, "F2").formula = "2/0"
workbook.calculate_formulas()
logical_value = workbook.get_cell(0, "B2").value # เท็จ
numeric_value = workbook.get_cell(0, "C2").value # 1.5
scientific_value = workbook.get_cell(0, "D2").value # 0.003
string_value = workbook.get_cell(0, "E2").value # abc
error_value = workbook.get_cell(0, "F2").value # #DIV/0!
ตัวดำเนินการคณิตศาสตร์
| ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
|---|---|---|
+ |
การบวกหรือบวกเชิงยูเนียรี | 2+3 |
- |
การลบหรือทำเครื่องหมายลบ | 2-3, -3 |
* |
การคูณ | 2*3 |
/ |
การหาร | 2/3 |
% |
เปอร์เซ็นต์ | 30% |
^ |
ยกกำลัง | 2^3 |
ใช้วงเล็บเพื่อทำให้ลำดับการประเมินชัดเจน เช่น (A2+B2)*C2
ตัวดำเนินการเปรียบเทียบ
นิพจน์การเปรียบเทียบให้ค่าตรรกะ
| ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
|---|---|---|
= |
เท่ากับ | A2=3 |
<> |
ไม่เท่ากับ | A2<>3 |
> |
มากกว่า | A2>3 |
>= |
มากกว่าหรือเท่ากับ | A2>=3 |
< |
น้อยกว่า | A2<3 |
<= |
น้อยกว่าหรือเท่ากับ | A2<=3 |
ฟังก์ชันที่กำหนดล่วงหน้าที่รองรับ
Aspose.Slides มีตัวตรวจสอบสูตรในตัวสำหรับแผ่นงานกราฟ แต่ไม่ได้เป็นเครื่องมือคำนวณ Excel เต็มรูปแบบ ชุดฟังก์ชันที่ถูกบันทึกไว้จำกัดอยู่ที่ฟังก์ชันต่อไปนี้ อย่าสันนิษฐานว่าฟังก์ชัน Excel ใด ๆ สามารถคำนวณใหม่ได้โดย calculate_formulas
| ฟังก์ชัน | วัตถุประสงค์หรือรูปแบบที่รองรับ | ตัวอย่าง |
|---|---|---|
ABS |
ค่าสัมบูรณ์ | ABS(A2) |
AVERAGE |
ค่าเฉลี่ยเลขคณิต | AVERAGE(B2:B5) |
CEILING |
ปัดจำนวนขึ้นเป็นหลายของ | CEILING(A2,5) |
CHOOSE |
เลือกค่าตามดัชนี | CHOOSE(A2,"Low","High") |
CONCAT |
รวมค่าข้อความ | CONCAT(A2,B2) |
CONCATENATE |
รวมค่าข้อความ | CONCATENATE(A2," ",B2) |
DATE |
สร้างค่าวันที่โดยใช้ระบบวันที่ 1900 | DATE(2026,8,19) |
DAYS |
คืนจำนวนวันระหว่างสองวันที่ | DAYS(B2,A2) |
FIND |
ค้นหาข้อความหนึ่งภายในอีกข้อความหนึ่ง | FIND("-",A2) |
FINDB |
การค้นหาข้อความแบบไบต์ | FINDB("a",A2) |
IF |
ผลลัพธ์ตามเงื่อนไข | IF(A2>0,A2,0) |
INDEX |
รูปแบบอ้างอิง | INDEX(A2:C4,2,3) |
LOOKUP |
รูปแบบเวกเตอร์ | LOOKUP(A2,B2:B5,C2:C5) |
MATCH |
รูปแบบเวกเตอร์ | MATCH(A2,B2:B5,0) |
MAX |
ค่าสูงสุด | MAX(B2:B5) |
SUM |
ผลรวมค่า | SUM(B2:B5) |
VLOOKUP |
การค้นหาแบบแนวตั้ง | VLOOKUP(A2,B2:D10,3,FALSE) |
ข้อจำกัดในตารางมีความสำคัญ: INDEX ถูกอธิบายในรูปแบบอ้างอิง, ส่วน LOOKUP และ MATCH อยู่ในรูปแบบเวกเตอร์ DATE ใช้ระบบวันที่ 1900 ฟังก์ชันหรือคุณลักษณะที่ไม่อยู่ในรายการนี้ควรถือว่าไม่ได้รับการสนับสนุนโดยตัวตรวจสอบสูตรของ Aspose.Slides นอกจากว่าจะมีการบันทึกแยกต่างหาก
คำนวณสูตรด้วยวัฒนธรรมที่ต้องการ
ฟังก์ชันบางอย่างของสมุดงานแผนภูมิจะแปลข้อความตามกฎของวัฒนธรรมที่กำหนด ซึ่งสำคัญอย่างยิ่งสำหรับฟังก์ชันที่ออกแบบมาสำหรับภาษาที่ใช้ชุดอักษรสองไบต์ (DBCS) เพื่อคำนวณสูตรเหล่านี้อย่างถูกต้อง ให้สร้าง LoadOptions, ตั้งค่า SpreadsheetOptions.preferred_culture ผ่าน LoadOptions.spreadsheet_options, แล้วโหลดงานนำเสนอ
ตัวอย่างต่อไปนี้เลือกวัฒนธรรมญี่ปุ่น, เปิดงานนำเสนอด้วย LoadOptions ที่กำหนดค่า, และเรียก ChartDataWorkbook.calculate_formulas สำหรับทุกสมุดงานแผนภูมิ:
import aspose.slides as slides
import aspose.slides.charts as charts
load_options = slides.LoadOptions()
load_options.spreadsheet_options.preferred_culture = "ja-JP"
with slides.Presentation("presentation.pptx", load_options) as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if isinstance(shape, charts.Chart):
shape.chart_data.chart_data_workbook.calculate_formulas()
วัฒนธรรมที่ต้องการเป็นส่วนหนึ่งของการกำหนดค่าการโหลดงานนำเสนอ ดังนั้นให้ระบุก่อนสร้างอ็อบเจกต์ Presentation ใช้วัฒนธรรมที่สูตรของสมุดงานคาดหวัง ตัวอย่างเช่น ใช้ ja-JP สำหรับสูตรที่ต้องปฏิบัติตามกฎการคำนวณ DBCS ของญี่ปุ่น
การคำนวณใหม่และค่าที่แคช
ไฟล์สเปรดชีตมักจะเก็บสูตรพร้อมค่าที่คำนวณแล้วล่าสุด Aspose.Slides จึงสามารถอ่านค่าที่แคชจาก IChartDataCell.value เมื่อโหลดงานนำเสนอและข้อมูลแผนภูมิที่เกี่ยวข้องไม่ได้ถูกเปลี่ยนแปลง
หลังจากเปลี่ยนค่าอินพุตหรือสูตร อย่าพึ่งพาค่าที่แคชเก่า ให้เรียก ChartDataWorkbook.calculate_formulas ก่อนอ่านค่าที่คำนวณหรือบันทึกข้อมูลแผนภูมิที่พึ่งพาค่าเหล่านั้น
สำหรับสูตรที่อยู่นอกชุดที่สนับสนุน Aspose.Slides อาจไม่สามารถแยกสูตรหรือกำหนดการพึ่งพาได้ หากสมุดงานถูกแก้ไข ค่าแคชก่อนหน้าอาจไม่เชื่อถือได้ ในสถานการณ์นั้น การอ่านค่าเซลล์ที่มีข้อมูลที่ไม่สนับสนุนอาจทำให้เกิด CellUnsupportedDataException
หากแผนภูมิของคุณพึ่งพาฟังก์ชัน Excel ที่ Aspose.Slides ไม่ประมวลผล ให้คำนวณสูตรเหล่านั้นด้วยเอนจินสเปรดชีตที่รองรับ แล้วเขียนค่าที่ได้กลับไปยังสมุดงานแผนภูมิ อย่าแทนสูตรที่ไม่สนับสนุนด้วยค่าที่คาดเดา
จัดการข้อผิดพลาดสูตร
มีสองประเภทของปัญหาที่ต้องแยกแยะ
สูตรอาจถูกต้องแต่ให้ผลลัพธ์เป็นข้อผิดพลาดของสเปรดชีตเช่น #DIV/0!, #N/A, #NAME?, #NULL!, #NUM!, #REF!, หรือ #VALUE! ในกรณีนี้ โทเค็นข้อผิดพลาดเป็นผลลัพธ์ของเซลล์และสามารถส่งกลับผ่าน value
สูตรอาจล้มเหลวในขั้นตอนการพาร์ส, การอ้างอิง, การพึ่งพา, หรือระดับข้อมูลที่สนับสนุน Aspose.Slides ให้ข้อยกเว้นเฉพาะสเปรดชีตสำหรับกรณีเหล่านี้: CellInvalidFormulaException, CellInvalidReferenceException, CellCircularReferenceException, และ CellUnsupportedDataException
เมื่อสูตรมาจากเทมเพลตหรืออินพุตของผู้ใช้ ให้จัดการข้อยกเว้นเหล่านี้รอบการคำนวณใหม่และการเข้าถึงค่า:
import aspose.slides as slides
import aspose.slides.charts as charts
import aspose.slides.spreadsheet as spreadsheet
with slides.Presentation() as presentation:
slide = presentation.slides[0]
chart = slide.shapes.add_chart(charts.ChartType.CLUSTERED_COLUMN, 50, 50, 500, 300)
workbook = chart.chart_data.chart_data_workbook
cell = workbook.get_cell(0, "A2")
cell.formula = "SUM(B2:B5)"
try:
workbook.calculate_formulas()
print(cell.value)
except spreadsheet.CellInvalidFormulaException as ex:
print(f"Invalid formula: {ex}")
except spreadsheet.CellInvalidReferenceException as ex:
print(f"Invalid cell reference: {ex}")
except spreadsheet.CellCircularReferenceException as ex:
print(f"Circular reference: {ex}")
except spreadsheet.CellUnsupportedDataException as ex:
print(f"Unsupported spreadsheet data: {ex}")
ข้อจำกัดเชิงปฏิบัติ
การสนับสนุนสูตรในแผ่นงานกราฟออกแบบมาสำหรับชุดย่อยของการคำนวณสเปรดชีต ไม่ได้สำหรับความเข้ากันได้เต็มรูปแบบกับ Excel ให้คำนึงถึงข้อจำกัดเหล่านี้เมื่อออกแบบกระบวนการรายงาน:
- ใช้เฉพาะค่าคงที่, ตัวดำเนินการ, การอ้างอิง, และฟังก์ชันที่บันทึกไว้เมื่อคุณต้องการให้ Aspose.Slides คำนวณสูตรใหม่
- คำนวณใหม่หลังจากเปลี่ยนเซลล์ที่สูตรอิงผล
- ถือว่าค่าที่แคชจากงานนำเข้าที่โหลดเป็นภาพถ่าย ณ จุดนัั้น ไม่ใช่การแทนที่การคำนวณใหม่หลังแก้ไข
- ทดสอบสูตรจากเทมเพลตที่มีอยู่ก่อนพึ่งพาผลลัพธ์ที่คำนวณแล้ว โดยเฉพาะอย่างยิ่งเมื่อใช้ฟังก์ชันที่อยู่นอกรายการที่บันทึกไว้
- สำหรับสูตรที่ต้องการเครื่องมือคำนวณสเปรดชีตเต็มรูปแบบ ให้คำนวณภายนอกแล้วอัปเดตสมุดงานแผนภูมิกับค่าที่ได้
คำถามที่พบบ่อย
สูตร formula กับ r1c1_formula แตกต่างกันอย่างไร?
formula เก็บนิพจน์แบบ A1 เช่น B2-C2 ส่วน r1c1_formula เก็บนิพจน์แบบ R1C1 เช่น RC[-2]-RC[-1] ใช้รูปแบบที่ตรงกับวิธีที่คุณสร้างหรือคัดลอกสูตร
ต้องอ่านเซลล์เองหรือค่า (value) หลังการคำนวณหรือไม่?
ChartDataWorkbook.get_cell คืนค่า IChartDataCell เพื่อให้ได้ผลลัพธ์ที่คำนวณแล้ว อ่านคุณสมบัติ value ของเซลล์นั้นหลังการคำนวณใหม่
ควรเรียก calculate_formulas เมื่อใด?
เรียก calculate_formulas หลังจากเปลี่ยนค่าหรือสูตรอินพุตและก่อนที่คุณจะพึ่งพาผลลัพธ์ที่คำนวณ มันจะอัปเดตค่าของสูตรที่ตัวตรวจสอบในตัวสนับสนุน
Aspose.Slides รองรับฟังก์ชัน Excel ทุกตัวหรือไม่?
ไม่ ตัวตรวจสอบในตัวรองรับชุดฟังก์ชันที่บันทึกไว้เท่านั้น ฟังก์ชันที่อยู่นอกชุดนั้นไม่ควรสันนิษฐานว่าจะคำนวณใหม่ได้อย่างถูกต้อง หากต้องการความเข้ากันได้เต็มรูปแบบของสูตร Excel ให้ทำการคำนวณด้วยเอนจินสเปรดชีตที่เหมาะสมแล้วเขียนค่าที่ได้ลงในสมุดงานแผนภูมิ
ถ้างานนำเข้าที่โหลดมีสูตรที่ไม่ได้สนับสนุน จะเกิดอะไรขึ้น?
หากข้อมูลแผนภูมิไม่เปลี่ยนแปลง สมุดงานอาจยังคงมีค่าที่แคชจากการคำนวณก่อนหน้า หลังจากแก้ไขข้อมูลที่เกี่ยวข้อง ค่าที่แคชนั้นอาจใช้ไม่ได้แล้ว การเข้าถึงเซลล์ที่สูตรไม่สามารถจัดการได้อาจทำให้เกิด CellUnsupportedDataException
ค่าข้อผิดพลาดสูตรเท่ากับข้อยกเว้นของ Python หรือไม่?
ไม่ ผลลัพธ์เช่น #DIV/0! เป็นค่าของสเปรดชีตที่เกิดจากการคำนวณที่ถูกต้อง ข้อยกเว้นเช่น CellInvalidFormulaException หรือ CellCircularReferenceException ระบุว่สูตรไม่สามารถประมวลผลตามปกติได้
แผนภูมิจะอัปเดตอัตโนมัติเมื่อเซลล์สูตรเปลี่ยนหรือไม่?
ชุดข้อมูลของแผนภูมิสามารถอ้างอิงเซลล์ในสมุดงานได้ คำนวณสมุดงานก่อน แล้วบันทึกหรือเรนเดอร์งานนำเสนอ ถ้าจุดข้อมูลของแผนภูมิอ้างอิงเซลล์ที่คำนวณแล้ว แผนภูมิจะใช้ค่าที่อัปเดตเหล่านั้น ไม่ต้องมีเมธอดรีเฟรชแผนภูมิแยกต่างหากในกระบวนการนี้
แผนภูมิสามารถใช้สมุดงาน Excel ภายนอกได้หรือไม่?
ได้ ข้อมูลแผนภูมิสามารถตั้งค่าให้ใช้สมุดงานภายนอกผ่าน API ของข้อมูลแผนภูมิ อย่างไรก็ตาม กระบวนการคำนวณสูตรที่อธิบายในบทความนี้เกี่ยวกับสมุดงานข้อมูลแผนภูมิและชุดสูตรที่ Aspose.Slides ตรวจสอบ ไม่ควรสันนิษฐานว่า calculate_formulas ให้การคำนวณเต็มรูปแบบของสูตรใด ๆ ในไฟล์ XLSX ภายนอก
สามารถใช้สูตรที่อ้างอิงแผ่นงานหรือสมุดงานอื่นได้หรือไม่?
อ้างอิงสไตล์ Excel อาจมีในสมุดงานแผนภูมิ แต่การประเมินสูตรนั้นจำกัดโดยพาร์เซอร์และชุดฟังก์ชันที่สนับสนุน หากต้องอ้างอิงข้ามแผ่นหรือไฟล์ภายนอก จำเป็นต้องตรวจสอบสูตรนั้นกับเวอร์ชัน Aspose.Slides ที่ใช้ สำหรับกระบวนการที่ต้องการความเข้ากันได้ของการอ้างอิง Excel อย่างกว้าง ควรคำนวณสมุดงานภายนอกแล้วเขียนค่าที่แก้ไขแล้วกลับไปยังข้อมูลแผนภูมิ
สูตรควรเริ่มต้นด้วย = หรือไม่?
ตัวอย่าง API ของ Aspose.Slides กำหนดนิพจน์เช่น B2-C2 หรือ SUM(B2:B5) โดยไม่มี = นำหน้า การใช้รูปแบบนี้ทำให้สูตรที่สร้างสอดคล้องกับตัวอย่าง API ที่บันทึกไว้