我有一个我需要维护的程序(不是我写的) 实际的功能是它从互联网上获取一个excel文件,然后将其转换为html(我甚至不知道为什么)然后它尝试将其保存到一个新的csv文件......
长话短说,我在整个代码中的问题在于这两部分
xl = new Microsoft.Office.Interop.Excel.Application();
xl.Visible = false;
//p_sUBKPath is the path of the HTML file that has the converted excel file
Microsoft.Office.Interop.Excel.Workbook workbook = xl.Workbooks.Open(p_sUBKPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];
Microsoft.Office.Interop.Excel.Range range = ws.UsedRange;
object[,] values = (object[,])range.Value2;
代码有一个if语句,试图确保html中第一行的每个值都匹配所需的值
if (Convert.ToString(values[1, 1]).ToUpper().Trim() == "DOMAIN NAME" && values[1, 2]).ToUpper().Trim() == "SHORT NAME" && values[1,3]).ToUpper().Trim() == "LONG NAME" )
{
//do something
}
if语句返回true并跳转到else语句,经过一些调试并尝试了一些代码行后,结果发现值[1,2]和值[1,3]从数组边界错误中返回。 值[1,1]的值是包含DOMAIN NAME,SHORT NAME和LONG NAME的整行,所以即使这个语句也返回flase
if (Convert.ToString(values[1, 1]).ToUpper().Trim() == "DOMAIN NAME")
{
//do something
}
知道代码中发生了什么吗?