OLEDB Excel формат файла

string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
                 fileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMES=1;\"";

using (OleDbConnection conn = new OleDbConnection(strConn))
{
    conn.Open();
    DataTable dt = dataset.Tables[0];
    OleDbCommand cmd = new OleDbCommand(getCreateTableCommand(dt), conn);
    cmd.ExecuteNonQuery();

    conn.Close();
}

/*method - getCreateTableCommand returns something like this - 
{CREATE TABLE [Results] ([name1] STRING,[name2] STRING,[name3] STRING,[name4] STRING}*/

Выход ХОРОШО. Проблема в том, что я хочу, чтобы столбцы Excel имели правильную ширину. Другими словами, я хочу получить более широкие столбцы, иногда даже больше, чем пространство, необходимое для записи имени столбцов. Как изменить размер столбца?

2 ответа

Драйвер ACE не контролирует отображение значения в Excel. Если вы хотите контролировать форматирование ячеек, вам нужно будет использовать OpenXML SDK, стороннюю надстройку, такую как jetCell, или Excel Automation с использованием первичной сборки взаимодействия, но скорее всего вы не захотите использовать последний вариант,

После заполнения Excel напишите метод автоматического подбора ширины столбцов или установите их в коде так, как вам нужно. Вам нужно будет использовать Excel Interop, и, как я слышал, это боль в C#. Тем не менее, это довольно простая задача, и я подозреваю, что это не будет иметь большого значения в C#. Мой опыт с автоматизацией Excel лежит исключительно в VB. Это то, что я сделал бы (хотя я не люблю использовать что-либо в своих приложениях).

Как автоматически изменять размер столбцов в объектах взаимодействия Excel?

Другие вопросы по тегам