我有一个需要维护的程序(不是我写的)实际功能是从互联网上获取一个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 语句,经过几次调试并尝试了几行代码,结果发现 values[1,2] 和 values[1,3] 正在返回数组边界错误。并且 values[1,1] 的值是包含 DOMAIN NAME、SHORT NAME 和 LONG NAME 的整行,所以即使这个语句也返回 flase
if (Convert.ToString(values[1, 1]).ToUpper().Trim() == "DOMAIN NAME")
{
//do something
}
知道代码中发生了什么吗?