111,120
社区成员
发帖
与我相关
我的任务
分享private void button2_Click(object sender, EventArgs e)
{
DataSet newLoadDataFromExcel = new DataSet();
newLoadDataFromExcel = LoadDataFromExcel(@"D:\我的程序\Projects\操作Excel\aaa.xls");
foreach (DataColumn col in newLoadDataFromExcel.Tables["Sheet1"].Columns)
{
listBox1.Items.Add(col.ColumnName);//这里本想输出列名如“A”、“B”等,却输出了“F1”“F2”等
}
DataRow row = newLoadDataFromExcel.Tables["Sheet1"].Rows[0];
listBox1.Items.Add(row["A"]);//这里会报错说“sheet1表中找不到A列”
}
public static DataSet LoadDataFromExcel(string filePath)//读取Excel
{
try
{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection OleConn = new OleDbConnection(strConn);
OleConn.Open();
String sql = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet newDataSet = new DataSet();
OleDaExcel.Fill(newDataSet, "Sheet1");
OleConn.Close();
return newDataSet;
}
catch (Exception err)
{
MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}listBox1.Items.Add(col.ColumnName);//这里本想输出列名如“A”、“B”等,却输出了“F1”“F2”等listBox1.Items.Add(row["A"]);//这里会报错说“sheet1表中找不到A列”
for ( int i = 0; i < newLoadDataFromExcel.Tables["Sheet1"].Columns.Count; i++ )
{
//不超过26列可以这样使用,如果超过,还要处理一下,因为后面的列名称为AA、AB等
listBox1.Items.Add( char.ConvertFromUtf32( i + 65 ) );
}
for ( int i = 0; i < newLoadDataFromExcel.Tables["Sheet1"].Columns.Count; i++ )
{
newLoadDataFromExcel.Tables["Sheet1"].Columns[i].ColumnName = char.ConvertFromUtf32( i + 65 ).ToString();
}