我目前正在编写一个C#应用程序来解析excel工作表。我有这些循环,这些循环遍历工作表中的每个单元并将其值打印到控制台:
for (int i = 1; i <= excelRange.Height; i++) {
for (int j = 1; j <= excelRange.Width; j++) {
if (j == 1)
Console.Write("\r\n");
if (excelRange.Cells[i, j] != null && excelRange.Cells[i, j].Value2 != null)
if (excelRange.Cells[i, j].Value2.ToString() == "-2146826265") {
Console.Write("\t");
}
else {
Console.Write(excelRange.Cells[i, j].Value2.toString() + "\t");
}
}
}
我的目标如下:我想找到具有顶部和左侧单元格边框的第一个单元格的地址(行和列)。不幸的是,我无法弄清楚如何在不更改或设置边界的情况下检查单个单元格上的边界,我想这就像
excelRange.Cells[i,j].Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle == Excel.XlLineStyle.xlContinuous;
但是不幸的是,这段代码只是使应用程序崩溃。有谁知道检查单个单元格是否包含边框的简单方法?
你快到了。由于LineStyle属性是动态的(即编译器不知道它是哪种对象),因此您需要将其显式转换为XlLineStyle以防止运行时错误:
var cellLineStyle = (Excel.XlLineStyle)excelRange.Cells[i,j].Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle;
if (cellLineStyle == Excel.XlLineStyle.xlContinuous) {
// do stuff
}
现在,我确定它是动态的,这是有原因的,并且上面的代码在某些情况下可能会崩溃,但是我对Excel interop不够熟悉,无法告诉您何时会发生这种情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句