Используя класс OleDbDataAdapter, я могу выполнить первый шаг:
прочитать определенный диапазон на определенной вкладке из документа Excel.
Мне нужно изменить содержимое набора данных по своему усмотрению, а затем перейти к последнему шагу.
Последний На этом этапе я борюсь: как записать набор данных обратно в 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
Мобильная версия