使用Spire.XLS读取Excel单元格值而非公式的C#技术求助
解决Spire.XLS读取Excel单元格实际值而非公式的问题
方法1:全局计算所有单元格值
先调用工作簿的CalculateAllValue()方法触发公式计算,再读取单元格的实际值:
using Spire.Xls; Workbook workbook = new Workbook(); workbook.LoadFromFile("你的文件路径.xlsx"); // 计算所有单元格的公式结果 workbook.CalculateAllValue(); Worksheet sheet = workbook.Worksheets[0]; // 获取指定单元格的实际值 string actualValue = sheet.Range["C3"].Value.ToString();
方法2:设置自动计算模式
加载文件前开启工作簿的自动计算模式,让程序加载时自动处理公式:
using Spire.Xls; Workbook workbook = new Workbook(); // 设置自动计算 workbook.Settings.CalculateMode = WorkbookCalculateMode.Automatic; workbook.LoadFromFile("你的文件路径.xlsx"); Worksheet sheet = workbook.Worksheets[0]; // 直接读取显示值(对应Excel单元格显示的内容) string displayValue = sheet.Range["C3"].Text; // 或者读取原始计算值 string rawValue = sheet.Range["C3"].Value.ToString();
方法3:单独计算指定单元格
如果只需要处理单个单元格,可直接调用单元格的Calculate()方法:
using Spire.Xls; Workbook workbook = new Workbook(); workbook.LoadFromFile("你的文件路径.xlsx"); Worksheet sheet = workbook.Worksheets[0]; CellRange targetCell = sheet.Range["C3"]; // 计算当前单元格的公式结果 targetCell.Calculate(); string actualValue = targetCell.Value.ToString();
注意事项
- 确保公式引用的单元格都包含有效数据,否则计算结果可能返回
#VALUE!等错误标识 - 若使用旧版Spire.XLS,建议升级到最新稳定版,部分旧版本存在公式计算逻辑bug
内容的提问来源于stack exchange,提问作者elcapo
相关产品推荐
相关产品推荐

