如何使用OLEDB从.XLS文件填充listview

时间:2011-06-15 11:54:12

标签: c# oledb

嗨,我有一个小问题。我正在编写一个程序,它显示一个Excel文件文件的列,旁边是两个单独的列表视图中的Access数据库的列。您选择要使用组合框显示的工作表和表格。 Access列显示正常,但无论我做什么,Excel工作表的列都不会显示,但工作表显示在组合框中没有任何问题,但无论我做什么,列都不会出现。有没有什么特别的方法可以帮助我在互联网上找不到任何东西。

这是应该插入它的部分     {

             {

            // lvwDestination.Columns.Add(_dt.Columns[i].ColumnName);

            lvwSource.Columns.Add("Fields in Database", -2, HorizontalAlignment.Left);

            for (int i = 0; i < _Sourcedt.Rows.Count; i++)
            {

                ListViewItem lvwItem = new ListViewItem("" + _Sourcedt.Columns[i].ColumnName, 0);
                lvwSource.Items.AddRange(new ListViewItem[] { lvwItem });

            }


        }

    }

另外一部分我可能已经搞砸了它可以访问但不适用于excel。我还修改了Select语句

private void cboSourceName_SelectedIndexChanged(object sender,EventArgs e)         {             //创建适配器并填充DataSet

        OleDbDataAdapter adapter =
           new OleDbDataAdapter("Select * from " + cboSourceName.Text +"" + "", _SourceConn);
        lvwSource.Columns.Clear();

        lvwSource.Items.Clear();

        _Sourcedt.Columns.Clear();//Contains all the columns in selected table

        try
        {
            adapter.Fill(_Sourcedt);
        }
        catch
        {
        }
        LoadColumns2();

    }

还有连接部分

private void btnConnectSource_Click(object sender,EventArgs e)         {             尝试             {

            string connString =



            "Provider=Microsoft.Jet.OLEDB.4.0;" +
            "Data Source=" + txtSourcePath.Text + ";" +
            "Extended Properties=Excel 8.0";
            //"Password=" + txtPWSource + ";";

            _SourceConn = new OleDbConnection(connString);
           // _OleConn[1].ConnectionString = connString;
            _SourceConn.Open();

            _Sourcedt = new DataTable();

            LoadCombo2();
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

1 个答案:

答案 0 :(得分:0)

在这种情况下使用Listview并不是一个好主意。最好的方法是将数据从Excel填充到Datagrid