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?