【问题标题】:Excel read cell is empty?Excel 读取单元格为空?
【发布时间】:2021-11-26 11:05:51
【问题描述】:

嘿,伙计们,我的问题是当我阅读单元格时,单元格中什么都没有,我有一个错误,我该如何检查?

var aExcel = sh.Cells[26, 2].Value.ToString();
 double test = Convert.ToDouble(aExcel);

还有一个问题,我如何阅读更多单元格?因为我的代码太长了……

var aExcel = sh.Cells[26, 2].Value.ToString();
var bExcel = sh.Cells[27, 2].Value.ToString();
var cExcel = sh.Cells[28, 2].Value.ToString();
var dExcel = sh.Cells[29, 2].Value.ToString();
var eExcel = sh.Cells[30, 2].Value.ToString();
var fExcel = sh.Cells[31, 2].Value.ToString();
double test1 = Convert.ToDouble(aExcel);
double test2 = Convert.ToDouble(bExcel);
double test3 = Convert.ToDouble(cExcel);
double test4 = Convert.ToDouble(dExcel);
double test5 = Convert.ToDouble(aExcel);

【问题讨论】:

  • 我使用 Microsoft.Office.Interop.Excel;
  • 我使用的是 Microsoft.Office.Interop.Excel; - 你可以通过使用 EPPlus 之类的东西来避免这种情况
  • 循环似乎适合使用数组来收集数据
  • 我有一个错误 - 总是,总是给出准确的错误文本。这是您能给我们的最有用的调试信息。没有它,说“出现错误”就像打电话给你的机械师说“我的车发出噪音”
  • 这种通过字符串跳闸可能不可靠。使用调试器检查您已经在sh.Cells[26, 2] 中获得的数据类型 - 例如将sh.Cells[26, 2].GetType() 放在即时窗口中——如果它已经是双精度的,那么在字符串中跳闸是不明智的;直接做演员

标签: c# excel


【解决方案1】:

您的第二个问题是示例代码:

List<Double> datas = new List<Double>();

int excelStartRow = 26;
int excelEndRow = 21;


for (int i = excelStartRow; i <= excelEndRow; i++)
{
    var aExcel = sh.Cells[i, 2];
    if (aExcel != null)
    {
       double value = Convert.ToDouble(aExcel.Value.ToString());
        datas.Add(value);
    }

}

【讨论】:

  • 谢谢你,伙计!这是完美的,但你能举例说明如何从一个数据列表中放入文本框吗?
  • 可能是这样 textbox.text = datas[2].ToString();?
  • 好的,我有这个谢谢你!!!!!!!这么多:)
  • 好吧,当我读取 3 个单元格并且一个是空的时遇到问题,我会跳回主代码,为什么?
  • 我读了 3 个单元格一个有 1:0,33 2:0,77 3:(Nothing)
【解决方案2】:

你可以这样检查:

 if(sh.Cells[26, 2] != null)
{
//do something
}

代码:

double test;
var aExcel = sh.Cells[26, 2];
if(aExcel != null){
test = Convert.ToDouble(aExcel.Value.ToString());
}
 

【讨论】:

  • 对于第二个问题,您可以使用 for 循环,您可以将值添加到数组或列表中
  • 这太好了,谢谢你 :)
  • gurkan 有简单的示例代码吗?
猜你喜欢
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多