用openxml读取excel,然后将读出的数据插到数据库,现在出现一个问题:读某个单元格的数据时,比如excel中的值是0.8,debug代码时,读出的值却是0.32,这个单元格是有公式的,值是自动算出来的,下面是我的代码:addressName是单元格名字(比如:Q5、R13之类的)
Cell theCell = worksheet.Descendants<Cell>().Where(c => c.CellReference == addressName).FirstOrDefault();
if (theCell != null)
            {
                value = theCell.InnerText;
                if (theCell.CellFormula != null)
                {
                    if (theCell.CellValue != null)
                    {
                        value = theCell.CellValue.InnerText;
                    }
                    else {
                        return null;
                    }
                }
}
比如读到Q51(Q列第51行)的值时,theCell.InnerText的值是“=ROUND(SUM(J51*I51,L51*K51,N51*M51,P51*O51),2)0.320000”,theCell.CellValue.InnerText的值是“0.320000”,但实际上在excel中Q51的值是0.8,诡异的是并不是Q列多有的值都会读错,只有个别的读错。
excel中的sheet是加了密码保护的,把密码保护去掉就不会读错,但读不到公式,下面是给sheet加密的代码:SheetProtection sheetProtection = new SheetProtection() { Sheet = true, Objects = true, Scenarios = true, Password = "****" };
 worksheet.InsertAfter(sheetProtection, ws.GetFirstChild<SheetData>());
有哪位大神遇到过这种情况或有办法解决的,麻烦帮帮我,谢谢!