Я нуб с Excel ДНК и C# программированием. Это, должно быть, один из базовых вопросов, и если бы на него уже был дан ответ о SO, я был бы более чем счастлив, если бы указывал в этом направлении. Я пытаюсь отправить любой диапазон или ячейку, активную на листе Excel, в соответствующую функцию C# при нажатии кнопки.
Это мой класс контроллера.
using System;
using ExcelDna;
using Excel = Microsoft.Office.Interop.Excel;
//Other dependencies
namespace My_Prj
{
[ComVisible(true)]
public class RibbonController : ExcelRibbon
{
return @"
<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'>
<ribbon>
<tabs>
<tab id='tab1' label='Temp Tab'>
<group id='group1' label='Temp Group'>
<button id='button1' label='Attach Db' onAction='OnButton1Pressed'/>
<button id='button2' label='Detach Db' onAction='OnButton2Pressed'/>
<button id='button3' label='Write Data' onAction='OnButton3Pressed'/>
</group >
</tab>
</tabs>
</ribbon>
</customUI>";
}
public void OnButton1Pressed(IRibbonControl control)
{
bool status = Main.Attach();
//+control.Id
MessageBox.Show("DB session Attach status: [" + status + "] ");
}
public void OnButton2Pressed(IRibbonControl control)
{
bool status = Main.Detach();
MessageBox.Show("DB session Detach status: [" + status + "]");
}
public void OnButton3Pressed(IRibbonControl control)
{
// Code to access range
}
Это мой основной класс.
using System;
using ExcelDna;
using Excel = Microsoft.Office.Interop.Excel;
// Other dependencies
namespace My_Prj
{
public class Main
{
// Class variables
[ExcelFunction(Category = "Main", Description = "Attach DB", Name = "Attach_DB")]
public static bool Attach()
{
//Connect to DB;
return status;
}
[ExcelFunction(Category = "Main", Description = "Detach DB", Name = "Detach_DB")]
public static bool Detach()
{
//Disconnect from DB;
return status;
}
[ExcelFunction(Category = "Main", Description = "Write Data", Name = "Write_Data")]
public static bool WriteData(Object[,] data)
{
//Write data;
}
}
}
Очевидно, если я вызову функцию Write_Data из Excel и выберу диапазон Я могу сохранить данные в БД. Моя цель - нажать третью кнопку после выбора диапазона или ячейки в Excel и сохранить эти данные в БД. Мой код может обрабатывать разные данные (одну ячейку или диапазон ячеек).
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.