|
楼主 |
发表于 2019-4-18 17:10
|
显示全部楼层
好像已经解决这个问题了,将重新计算的WorkSheet Activate, 同时选中要改变数值的单元格,然后再去读取根据公式更新的数据,得到的是新的数据。代码如下:
//感觉需要将Worksheet Activate,同时选择要改变数值的单元
((Excel._Worksheet)wst).Activate();
ExcelTool.getWorksheetRange(wst, DischargeData.cRateAddress).Select();
ExcelTool.setWorksheetSingleCellValue(wst, DischargeData.cRateAddress, cRate); //TODO:自动加载XlXtrFun.xll的问题
int r1 = DischargeData.findRowNumberByMValue(wst, startCapacity);
int r2 = DischargeData.findRowNumberByMValue(wst, currentCapacity);
DischargeData.reCalculate(wst, cRate,r1,r2);
log.log(" 设置" + wst.Name + "的" + DischargeData.cRateAddress + "单元值为" + cRate);
double newcRate = Double.Parse(ExcelTool.getWorksheetSingleCellValue(wst, DischargeData.cRateAddress));
log.log(" 读取" + wst.Name + "的" + DischargeData.cRateAddress + "新的单元值为" + newcRate);
MessageBox.Show("放电数据重新计算," + DischargeData.cRateAddress + "的值为:" + newcRate);
String newVCellStart;
String newVCellEnd;
newVCellStart = DischargeData.findNColumnValueByMValue(wst, startCapacity);
newVCellEnd = DischargeData.findNColumnValueByMValue(wst, currentCapacity);
log.log(" 查表结果:" + startCapacity + "->" + newVCellStart + " " + currentCapacity + "->" + newVCellEnd); |
|