我需要从 Excel 工作表中的每一行读取值,并按顺序对包含的值进行一些计算。我似乎在访问这些值时遇到了一些问题,希望能在调试下面的代码时得到一些帮助。
public void ProcessRows(IEnumerable<Row> dataRows, SharedStringTable sharedString)
{
try
{
//Extract the information for each row
foreach (Row row in dataRows)
{
var cellValues = from cell in row.Descendants<Cell>()
select ((cell.CellValue != null && cell.DataType!=null && cell.DataType.HasValue )
&& (sharedString.HasChildren && int.Parse(cell.CellValue.InnerText) < sharedString.ChildElements.Count)
? sharedString.ChildElements[int.Parse(cell.CellValue.InnerText)].InnerText
: ((cell.CellValue.InnerText != null)?cell.CellValue.InnerText:cell.CellValue.Text));
//Check to verify the row contained data.
if (cellValues != null && cellValues.Count() > 0)
{
//Create a productdetail object and add it to the list.
var values = cellValues.ToArray();
ProductItemDetail itemdetail = new ProductItemDetail();
itemdetail.RecordID = SessionRecordID;
if (values[0] != null)
itemdetail.Source = values[0].Trim();
if (values[1] != null)
itemdetail.Sourcename = values[1].Trim();
if (values[2] != null)
itemdetail.URLHomePage = values[2].Trim();
}
{
Catch(Exception ex)
{
throw ex;
}
}
当我在代码中运行这一行时,问题似乎发生了
if (cellValues != null & cellValues.Count() > 0) { . . . . . }
你调用的对象是空的。