C#EPPLUS无法获得单元格值

som*_*ang 6 .net c# epplus

我有单元格"A1",其值为1.00,由公式设置

我想将此值保存到变量中.

我试过了:

ws.Cells["A1"].Value
ws.Cells["A1"].Text
ws.Cells["A1"].GetValue<double>
ws.Cells["A1"].Value.ToString()
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,因为我得到一个错误或我根本没有得到我的号码(console.writeline输出一个空白).

我尝试在线搜索,我得到了我上面尝试的内容.我知道我正在引用单元格,因为我实际上可以正确设置值.

那么我如何实际获得1.00的值并将其保存为双变量?

编辑:我的代码,其中filePath中的工作表的"A1"值为1.00

using (var pck = new ExcelPackage(filePath))
{
   var ws = pck.Workbook.Worksheets[1];

   var test1 = ws.Cells["A1"].Value;
   var test2 = ws.Cells["A1"].Text;
   var test3 = ws.Cells["A1"].GetValue<double>();

   Console.WriteLine(test1);
   Console.WriteLine(test2);
   Console.WriteLine(test3);
 }
Run Code Online (Sandbox Code Playgroud)

输出是:

[blank]
[blank]
0
Run Code Online (Sandbox Code Playgroud)

EDIT2:1.00的值来自公式

Shi*_*lpa 8

使用行索引和列索引获取单元格值。该值是字符串形式的。将字符串值转换为双精度值。

尝试这个:

var ws = pck.Workbook.Worksheets[1];

//var test1 = ws.Cells[rowIndex, columnIndex].Value;
//For cell A1 - rowIndex is 1, columnIndex is 1
var test1 = ws.Cells[1, 1].Value;
double dValue = Convert.ToDouble(test1);
Run Code Online (Sandbox Code Playgroud)

  • 为您的答案添加更多解释。它被标记为低质量,因为它很短。 (2认同)

som*_*ang 3

抱歉给您带来麻烦。通过执行 ws.Cell["A1"].Calculate() 我可以获得该值。愚蠢的我忽略了这个事实