Вход на сайт
Экспорт в Excel, using Microsoft.Jet.OLEDB.4.0
152
24.07.18 18:31
Экспорт в Excel, using Microsoft.Jet.OLEDB.4.0
Наткнулся на забавную подсистемку и ее глюки.
Системка указана выше. Есть для х86, есть для х64. Но ставится только одна.
Дальше все просто:
OleDbConnection conn = new OleDbConnection();conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\filename.xsl;Extended Properties=\"Excel 8.0;Readonly=False;HDR=Yes\"";conn.Open();OleDbCommand cmd1 = new OleDbCommand();cmd1.Connection = conn;foreach (DataTable dt in DTs){string sql = CreateTableSQL(dt);Debug.Print(sql);cmd1.CommandText = sql;cmd1.ExecuteNonQuery();}conn.Close();
CreateTableSQL() - должна вернуть скл-строку для создания таблицы.
По результату выполнения в екселовском файле будет записан "лист" с именем таблицы и набором колонок как указано в скл.
Потом так же склом можно добавлять данные.
Глюк 1. Microsoft.Jet.OLEDB.4.0 ставится с Офисом. Поменять с х86 на х64 потом можно только сносом офиса.
Глюк 2. Проект использующий Джэт - должен быть именно х86 или х 64. АниЦПУ - не катит.
Глюк 3. Вся система чувствительна к... расширению в имени фала. Ошибка в одной букве и... база будет РеадОнли... хотя файла не будет.