2012-06-19 53 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