日期:2014-05-17  浏览次数:20904 次

【紧急求助】excel 导入到 Listview的问题
我用一下代码导入EXCEL文件,并且已经把所有单元格的格式全部设置为文本:
C# code
                   string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                    OleDbConnection OleConn = new OleDbConnection(strConn);
                    OleConn.Open();
                    String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等 

                    OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                    DataSet OleDsExcle = new DataSet();
                    OleDaExcel.Fill(OleDsExcle, "Sheet1");
                    OleConn.Close();
                    int rowCount = OleDsExcle.Tables["Sheet1"].Rows.Count;
                    int columnCount = OleDsExcle.Tables["Sheet1"].Columns.Count;
                    myListView.BeginUpdate();
                    myListView.Items.Clear();
                    string[] lvitem = new string[columnCount-1];
                    for (int i = 0; i < rowCount; i++)
                    {
                        for (int j = 0; j < columnCount-1; j++)
                        {
                            lvitem[j] =OleDsExcle.Tables["Sheet1"].Rows[i][j+1].ToString();
                        }
                        ListViewItem lvi = new ListViewItem(lvitem);
                        myListView.Items.Add(lvi);
                    }
                    myListView.EndUpdate();



发现以下奇怪的现象:第一列读出正常,第二列中所有有英文字符的单元格全部读出都是空白,百思不得其解,急求高手指教!
另外再求教一个,如何让ListView的单元显示网格啊?
excel的源文件:

导入后的状态:


------解决方案--------------------
这个问题倒是新鲜,关注一下!
------解决方案--------------------
呵呵,这个问题是因为你的excel数据密码列格式不一致的问题,有些是数字型,有些是文本型(就是那些左上角带绿色小三角的)。
------解决方案--------------------
探讨
我也在做关于txt、excel、xml数据导入的问提,不过是要导入数据库。关注........