Click here to Skip to main content
15,885,909 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
My main problem is getting the information from my list object in the excel spreadsheet. For some reason it wont convert the string to an int.

C#
public static DataTable excelDerivedAssembliesDT(string excelDir, int jobID)
{

 DataTable dt = new DataTable();
 var excelApp = new Excel.Application();

 try
 {
 excelApp.Visible = false;
 excelApp.Workbooks.Open(excelDir);
 Excel.ListObject vstoListObject = excelApp.Worksheets[1].ListObjects[1];

 DataColumn assemblyID = new DataColumn();
 assemblyID.DataType = System.Type.GetType("System.Int32");
 assemblyID.ColumnName = "assemblyID";
 assemblyID.AutoIncrement = true;
dt.Columns.Add(assemblyID);
 
DataColumn assemblyNo = new DataColumn();
 assemblyNo.DataType = System.Type.GetType("System.Int32");
 assemblyNo.ColumnName = "assemblyNo";
dt.Columns.Add(assemblyNo);

 DataColumn job = new DataColumn();
 job.DataType = System.Type.GetType("System.Int32");
 job.ColumnName = "jobID";
dt.Columns.Add(job);

 DataColumn assemQTY = new DataColumn();
 assemQTY.DataType = System.Type.GetType("System.Int32");
 assemQTY.ColumnName = "assemblyQty";
dt.Columns.Add(assemQTY);
 DataRow dataRow = dt.NewRow();
 
  
 foreach (Excel.ListRow row in vstoListObject.ListRows)
{
 //This is the part i cant seem to get to work i just cant see why it shouldn't
 
 dataRow["assemblyNo"] = (int)(row.Range.Cells[1, 1]).ToString());
 
 dataRow["assemblyQty"] = (int)(row.Range.Cells[1, 2]).ToString());

 dataRow["jobID"] = (int)(row.Range.Cells[1, 3]).ToString());

dt.Rows.Add(dataRow);
dataRow = dt.NewRow();


}

dt.AcceptChanges();

}

 catch(exception e)
 {
     MessageBox.Show(e.ToString());

 }
 return dt;

}
 
 
 
}


Any help would be greatly appreciated.
Posted

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900