c# excel sheet 获取问题(高手进)
有N个excel 循环处理。
第一个excel 11列 其他所有excel 12列 列名一样
循环第一次 select * from sheet1$ 11列
第二次循环 select * from sheet1$ 填充到dataset里面 还是11列。 如果不要第一次循环 就能得到12列。很是郁闷,很急
为什么 excel 中有12列 确select 得到11列。
- C# code
foreach (string FilePath in strFiles) { OleDbConnection dbcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0"); try { if (dbcon.State == ConnectionState.Closed) { dbcon.Open(); } for (int i = 0; i < TableList.Count; i++) { string dtname = TableList[i].ToString(); try { OleDbCommand cmd = new OleDbCommand("select * from [" + dtname + "$]", dbcon); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); table = new DataTable(dtname); adapter.Fill(table); ds.Tables.Add(table); } catch (Exception exp) { MessageBox.Show(exp.Message); } } } finally { if (dbcon.State == ConnectionState.Open) { dbcon.Close(); } }}
[解决办法]
for (int i = 0; i < TableList.Count; i++)
TableList怎么来的?
sheet名称一般是从1开始
试试
for (int i = 1; i <= TableList.Count; i++)
[解决办法]
楼主的问题看不明白啊,你自己说的:
第一个excel 11列 其他所有excel 12列 列名一样
那么你从两个循环取第一个excel都是11列了,没错啊?另外你看看excel中是否有隐藏的列呢?