Все листы, выбранные (сгруппированные) при использовании OleDbConnection для экспорта xlsx (Database Access Database Engine 2010) - PullRequest
0 голосов
/ 04 октября 2018

Я использую OleDbConnection для экспорта данных в файл Excel.Генерация Excel работает нормально, если установлена ​​соответствующая архитектура (x64 или x86) «Access Database Engine 2010».Но проблема в том, что когда я открываю сгенерированный Excel, все листы выбираются по умолчанию.Это означает, что как только я открою файл, и если я начну редактировать одну ячейку, такое же изменение будет отражено на всех листах.Я хочу избежать этого поведения.

using (var oledb=new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\test.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES;"";"))
{
    oledb.Open();
    for (int i = 0; i < 3; i++)
    {
        using (var command = new OleDbCommand($"CREATE TABLE table{i} (Column1 varchar(20),Column2 varchar(20),Column3 int)"))
        {
            command.Connection = oledb;
            command.ExecuteNonQuery();
        }

        for (int j = 0; j < 100; j++)
        {
            using (var insertion = new OleDbCommand($"insert into table{i} values('don{j}','deen{j}',{i+j})"))
            {
                insertion.Connection = oledb;
                insertion.ExecuteNonQuery();
            }
        }
    }
}

Примечание. Эта проблема не воспроизводится, если я устанавливаю «Database Engine 2007», но, насколько мне известно, для «Database Engine 2007» доступна только версия x32.".

С уважением, Ани

...