C# Загрузка адаптера данных из Excel, есть ли максимальное количество столбцов? - PullRequest
0 голосов
/ 09 марта 2020

Я столкнулся с проблемой, пытаясь создать таблицу данных c# из таблицы Excel. Код прост, но по какой-то причине, когда я перехожу через него, таблица данных загружается только с 256 из 700 столбцов, которые находятся в электронной таблице. Глядя на код ниже, Settings.Excel_Proj_Select это просто «Выбрать * из Project_Data $». Существует ли максимальное количество столбцов и, если да, есть ли способ обойти это, чтобы получить полный лист в таблицу данных?

        public static DataTable getRowData()
        {

        OleDbConnection cnn = new OleDbConnection(Settings.ExcelCN);
        OleDbCommand oconn = new OleDbCommand(Settings.Excel_Proj_Select, cnn);
        cnn.Open();
        OleDbDataAdapter adp = new OleDbDataAdapter(oconn);
        DataTable dt = new DataTable();
        adp.Fill(dt);
        cnn.Close();

        dt.Columns.Add("Extract_Date", typeof(string));
        foreach (DataRow row in dt.Rows)
        {
            row["Extract_Date"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        }

        return dt;
    }

Любая информация приветствуется. Спасибо!

1 Ответ

0 голосов
/ 09 марта 2020

При использовании поставщика Ole для этого, как представляется, максимальное число столбцов составляет 255, да.

Но вы можете использовать простой обходной путь, указав диапазон в ваших запросах:

//Modify the range to suit your needs
SELECT * FROM Project_Data$[RANGE]:[HERE]

Затем вы можете запустить несколько запросов, каждый из которых ВЫБРАЕТ разные диапазоны, а затем объединит данные.

Пожалуйста, смотрите здесь для другого метода, использующего Open XML.

...