In C#, I've opened an Excel spreadsheet and I am iterating through it. Whenever I get to line 144, the spreadsheet value returns null for every single line following it. Looking at the spreadsheet, it is clearly not null for lines 144 - 250. I tried saving it in different versions but that didn't work. I've tried copying and pasting into a brand new worksheet. Nothing has worked. Here is my code:
// initiate Excel
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(lblFileName.Text, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//Get the used Range
Excel.Range usedRange = xlWorkSheet.UsedRange;
//Iterate the rows in the used range
string customerNumber;
string amount;
int i = 0;
decimal dAmount = 0;
bool runProcess = true;
bool hasHeader = false;
string cellValue;
foreach (Excel.Range row in usedRange.Rows)
{
i++;
// Column 1 is customer number
// THE FOLLOWING LINE RETURNS NULL STARTING AT ROW 144
cellValue = row.Cells[i, 1].Value2 == null ? "" : row.Cells[i, 1].Value2.ToString();
if (!(cellValue.Length >= 5 && cellValue.Length <= 20))
{
MessageBox.Show(cellValue + " Must be between 5 and 20 Characters - File Will Not Be Processed Row#" + i.ToString());
runProcess = false;
}
}
// run process
// release EXCEL
I did try row.Cells[i, 1].Value2, row.Cells[i, 1].Value and row.Cells[i, 1].Text and got the same results for all. I am including "using Excel = Microsoft.Office.Interop.Excel;"
Sample Data from Excel
4492605768531895 15.95
4492605768536544 19.95
4492605768565459 11.95
4492605739542347 14.95
4492605768635795 25.95
44or is it when they begin to start with44that you run into an error? Just trying to narrow it down :-)