2016-08-19 61 views
0

在这个例子中:树形目录,列表视图和DataGridView中:隐藏文件路径

  1. 图像选择
  2. 选择文件夹(显示树形目录)
  3. 选择excelfile(显示列表视图)
  4. 选择在列表视图excelfile
  5. 点击并在Gridview中显示我的excel文件。

enter image description here

我问怎么隐藏文件路径...

这是我的代码:

namespace WindowsFormsApplication5 
{ 
    public partial class Form1 : Form 
    { 
     private object datagridview; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      string[] ids = Directory .GetLogicalDrives(); 
      foreach (string id in ids) 
      { 
       treeView1.Nodes.Add(id); 

      } 
     } 

     private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
     { 
      listView1.Clear(); 

      string[] dirs = Directory.GetDirectories(treeView1.SelectedNode.Text); 
      foreach(string dir in dirs) 

      { 
       listView1.Items.Add(dir, 0); 
       treeView1.SelectedNode.Nodes.Add(dir); 

      } 
     } 

回答

0

我的韩国比你的英语差了很多,但我会尽力帮助。

我不得不猜测你想做什么,但我想你想要的是在DataGridView中显示一个Excel文件,但双击listView中的文件?

首先,您需要将Excel文件添加到您的列表视图。

 listView1.Clear(); 

     string[] dirs = Directory.GetDirectories(treeView1.SelectedNode.Text); 
     string[] files = Directory.GetFiles(treeView1.SelectedNode.Text, "*.xls*"); 
     foreach (string dir in dirs) 

     { 
      listView1.Items.Add(dir, 0); 
      treeView1.SelectedNode.Nodes.Add(dir); 
     } 
     foreach (string file in files) 

     { 
      listView1.Items.Add(file, 0); 
     } 

注意添加的GetFiles的:

我通过改变你的treeView1_AfterSelect来这样做。

我加入一个DoubleClick事件到ListView:

private void listView1_DoubleClick(object sender, EventArgs e) 
    { 
     string fileName = listView1.SelectedItems[0].Text; 
     if (fileName.Contains(".xl")) 
     { 
      string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
          fileName + 
          ";Extended Properties='Excel 12.0;HDR=YES;';"; 

      OleDbConnection con = new OleDbConnection(constr); 
      OleDbCommand oconn = new OleDbCommand("Select * From [Sheet1$]", con); 
      con.Open(); 

      OleDbDataAdapter sda = new OleDbDataAdapter(oconn); 
      DataTable data = new DataTable(); 
      sda.Fill(data); 
      dataGridView1.DataSource = data; 
     } 
    } 

对于这个工作,你需要有正确的ACE.OLEDB提供商。由于某些原因,我无法解释,尽管我的系统是64位的,而且我有Office 64位,但我需要安装32位Access运行时才能使其工作。我给链接在这里:

+0

你是我的英雄。虽然还没有按照,感激我的意图来了解。祝你好运!1 –

+0

你已经说了一整天,但dataGridview1不显示xls。有什么我需要改变? –

+0

在listview gridview中偏移excelfile而不是修改 –