2011-06-15 68 views
0

嗨,我有一个小问题。我正在编写一个程序,该程序显示Excel文件文件的列,并在两个分开的列表视图中显示Access数据库的列。您选择表单和表格以显示组合框。 Access列显示正常,但Excel工作表的列不会显示,无论我做什么,但工作表都显示在组合框中,没有任何问题,但无论我做什么,列都不会出现。有没有什么特定的方式可以做到这一点,因为我无法在互联网上找到任何东西。如何使用OLEDB从.XLS文件填充列表视图

这是应该插入的情况下它 {

   { 

      // 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语句的小

私人无效cboSourceName_SelectedIndexChanged(对象发件人,EventArgs的){ // 创建适配器和填充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(); 

    } 

而且还连接部分

私人void btnConnectSource_Click(object sender,EventArgs e) { try {

  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); 
     } 
+0

请发布您的代码。 – 2011-06-15 11:58:46

+0

好吧,我很新的编码,所以你需要哪一部分 – raz0r 2011-06-15 12:00:23

+0

我一直在寻找在你的Excel文件中读取的代码。如果你的ListView是空的,可能是因为_Sourcedt.Rows.Count = 0,你需要弄清楚为什么你没有得到任何行,例如你正在阅读excel中的空白表格。使用“Add”方法而不是“AddRange”,Add用于添加单个项目AddRange以添加多个项目。 – 2011-06-15 12:25:45

回答

0

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