我正在创建一个将excel提取到数据表中的应用程序,该数据表将显示在列表中。但问题是所有数据都将行方式数据放入列表框中。
DataTable dt = new DataTable();
DataSet ds = new DataSet();
DataTable sheet = dbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
OleDbCommand selectCmd = new OleDbCommand(String.Format("SELECT * FROM [{0}]", sheet.Rows[0]["TABLE_NAME"]), dbConn);
OleDbDataAdapter dbAdapter = new OleDbDataAdapter(selectCmd);
dbAdapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
ListBox1.Items.Add(row[col].ToString());
}
}
答案 0 :(得分:1)
为什么不使用DataGridView类?然后就可以直接将DataTable设置为数据源。
dataGridView1.DataSource = dt;
对于列表框,您需要创建一个表示每列的字符串。这很难对齐。如果你想修改单元格值,那将非常麻烦。
foreach (DataRow row in dt.Rows)
{
var sb = new StringBuilder();
foreach (DataColumn col in dt.Columns)
{
sb.Append(row[col] + "\t");
}
ListBox1.Items.Add(sb.ToString());
}