VB 2010 Автоматизация Excel

Я пытаюсь автоматизировать заполнение главного файла excel из выбранных строк в элементе datagridview. Я уже подключил базу данных к сетке данных и пытаюсь заполнить определенные поля в электронной таблице 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

Из проведенного мной исследования мне нужно будет использовать событие selectionchanged моей сетки данных, чтобы идентифицировать выбранные строки, затем заполнить электронную таблицу на основе индекса столбца, а затем использовать цикл для заполнения оставшихся полей. Я также хотел бы добавить возможность создавать несколько листов, перебирая выбранные строки в представлении сетки данных.

Я просмотрел много разных примеров кода для экспорта всей сетки данных в Excel, но я не могу понять, как получить значение только выбранной строки, а затем дополнительные значения отдельных ячеек на основе столбца .

Может ли кто-нибудь указать мне правильное направление или просто дайте мне знать, что я совершенно неправ?


person connectshrink    schedule 19.06.2012    source источник
comment
Ты на правильном пути. Вы можете использовать событие DataGridView1_SelectionChanged для получения сведений о текущей строке. См. эту ссылку msdn.microsoft.com/en -us/library/ Для взаимодействия с формой Excel VB.Net после получения значений сетки данных см. эту ссылку siddharthrout.wordpress.com/vb-net-and-excel   -  person Siddharth Rout    schedule 19.06.2012


Ответы (1)


Чтобы установить значение ячейки, вы можете просто использовать

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

Нет необходимости выбирать ячейку, чтобы установить ее значение. Поскольку вы собираетесь перебирать строки/столбцы и вставлять значения, вам может оказаться более удобным использовать другой подход к адресации конкретных ячеек:

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

Я не уверен, что вам нужно фиксировать события в вашем datagridview (если вы не автоматически записываете строки по мере их выбора): я предполагаю, что у вас есть кнопка или что-то еще, чтобы вызвать экспорт, так что все, что вам нужно, это dso посмотрите на DGV SelectedRows

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

person Tim Williams    schedule 19.06.2012
comment
Итак, чтобы немного пояснить, что я пытаюсь сделать... У меня есть сетка данных, заполненная списком местоположений с такими полями, как идентификатор, имя, адрес и т. д. На основе выбранных строк я хотел бы, чтобы лист быть заполнен значениями в каждом столбце. Я борюсь с любым значением. Я хочу, чтобы все было значением ячейки из выбранной строки сетки данных. Что-то вроде objExcel.Cells(2,2).Value = DataGridListView1.SelectedRows()? Как я могу выбрать уникальную ячейку на основе индекса столбца из SelectedRows? А также большое спасибо за помощь до сих пор, очевидно, я нуб :-) - person connectshrink; 19.06.2012
comment
Просмотр примеров кода, когда они устанавливают для таблицы данных или листа excel статические значения, имеет для меня смысл, я просто упускаю что-то важное, когда дело доходит до работы с сеткой данных. - person connectshrink; 19.06.2012