2012-06-19 56 views
1

我想从datagridview元素中的选定行中自动填充主excel文件。我已经将数据库连接到数据网格,并且我试图根据数据网格的选定行填充Excel电子表格中的某些字段。VB 2010 Excel自动化

Dim objExcel As New Excel.Application 
    objExcel.Workbooks.Add("path of master workbook") 
    ' 
    objExcel.Visible = True 

    'Select and modify cells 

    'Site(Name) 

    objExcel.Range("B2").Select() 
    objExcel.ActiveCell.FormulaR1C1() = 'Where I want to specify the value 

从研究,我已经做了,我需要用我的DataGrid,以确定所选行的SelectionChanged事件,然后填充基于列的索引电子表格,然后使用一个循环的剩余字段来填充。我还想添加创建多个工作表的功能,方法是循环访问datagrid视图中的选定行。

我已经看过很多不同的代码示例,用于将整个数据网格导出到Excel,但是我不能为我的生活弄清楚如何获取只有选定行的值,然后再将单个单元格基于列的值。

有人能指出我正确的方向,还是让我知道我完全脱离基地?

+0

您正处在正确的轨道上。您可以使用'DataGridView1_SelectionChanged'事件来获取当前行的详细信息。请参阅此链接http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.selectionchanged.aspx一旦获得datagrid值,就可以与Excel形式的VB.Net进行交互,请参阅此链接http: //siddharthrout.wordpress.com/vb-net-and-excel/ –

回答

0

要设置单元格的值,你可以只使用

objExcel.Range("B2").Value = "whatever" 

有没有必要选择一个单元格将其值设置。 因为你要通过行/列进行循环和插入值,你会发现它更方便地使用不同的方法来解决特定的细胞:

objExcel.Cells(2,2).Value = "whatever" 'row,column 

我不知道你需要捕获事件在你的datagridview上(除非你自动在被选中时自动写行):我猜你有一个按钮或者某个东西来触发导出,所以你只需要看dgv的SelectedRows

http://msdn.microsoft.com/en-us/library/x8x9zk5a.aspx#Y0

+0

好的,以便澄清一下我正在尝试做的事情......我有一个数据网格,里面填充了具有ID,名称,地址等。基于选定的行,我希望工作表中填入每列中的值。我正在努力与“无论”价值。我想要“无论”作为数据网格的选定行的单元格值。就像objExcel.Cells(2,2).Value = DataGridListView1.SelectedRows()?我怎么能根据“SelectedRows”中的列索引选出一个独特的单元格?同时也非常感谢您的帮助,显然我是一个小白:-) – connectshrink

+0

当他们将datagrid或excel表单设置为静态值时查看代码示例对我来说很有意义,我只是在缺少重要的东西时使用数据网格 – connectshrink