Используя класс OleDbDataAdapter, я могу выполнить первый шаг:
прочитать из документа Excel определенный диапазон на определенной вкладке.
Мне нужно изменить содержимое набора данных по своему усмотрению, а затем перейти к последнему шагу.
Последний шаг: где я борюсь:
Как записать набор данных обратно, чтобы преуспеть в том же диапазоне и на той же вкладке.
По сути, обновление того, что было прочитано изначально с моими изменениями.
Мой код пока для первого шага.
Изменения в наборе данных не имеют отношения к этому примеру.
Код: Выделить всё
static void Main(string[] args)
{
string dq = "\"";
string dataSheetName = "Sheet1";
string fileName = @"C:\Myfile.xlsm";
string excelRange = "A1:E7";
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={fileName}; Extended Properties={dq}Excel 12.0;HDR=NO;IMEX=1{dq}";
var adapter = new OleDbDataAdapter($"SELECT * FROM [{dataSheetName}${excelRange}]", connectionString);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "myData");
DataTable dataTable = dataSet.Tables["myData"];
foreach (DataRow row in dataTable.Rows)
{
// change rows contents as I please before writing back to Excel
}
// ------------------------------------------------------------------------------------
// GOAL: To write back to Excel the dataset changed above into the same tab and range
// ------------------------------------------------------------------------------------
}
Кто-нибудь может помочь?
Очень благодарен.
Подробнее здесь: https://stackoverflow.com/questions/798 ... k-to-excel
Мобильная версия