本文介绍了如何从Excel Listobject表填充DataTable?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的主要问题是从excel电子表格中的列表对象获取信息。由于某种原因,它不会将字符串转换为int。
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.
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.
推荐答案
这篇关于如何从Excel Listobject表填充DataTable?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!