首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# excel sheet 获取有关问题()

2012-09-21 
c# excel sheet 获取问题(高手进)有N个excel 循环处理。第一个excel 11列 其他所有excel12列列名一样循环第

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中是否有隐藏的列呢?

热点排行