Операторы вставки Excel OleConnection

Как вставить строку в документ Excel. Это то, что у меня есть.

String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + file_path + ";Extended Properties=Excel 8.0;";

        DataTable dt = new DataTable();

        DataSet ds = new DataSet();
        OleDbConnection conn = new OleDbConnection(connString);

        OleDbCommand cmd = new OleDbCommand(str_insert, conn);

        cmd.CommandTimeout = 3600;
        try
        {

            cmd.Connection = conn;
            DataSet active_ds = new DataSet();
            cmd.CommandText = str_insert;
            if (conn.State != ConnectionState.Open)
                conn.Open();

            foreach (DataRow dr in details_dt.Rows)
            {
                cmd.CommandText = "INSERT INTO [DETAILS$](Ipt, Ipt Ownr, Order, Order Delivery Date, Assembly, Description, Component, User, Name, Change Code, Reason Code, Value New, Value Old,"
                + "Date, Time, Auth Doc, Plant, Mfg Source, Order Type, Model, Effy) " + "VALUES(" + dr.ItemArray[0].ToString() + "," + dr.ItemArray[1].ToString() + "," + dr.ItemArray[2].ToString() + "," + dr.ItemArray[3].ToString() + "," +
                dr.ItemArray[4].ToString() + "," + dr.ItemArray[5].ToString() + "," + dr.ItemArray[6].ToString() + "," + dr.ItemArray[7].ToString() + "," + dr.ItemArray[8].ToString() + "," + dr.ItemArray[9].ToString() + "," + dr.ItemArray[10].ToString()
                + "," + dr.ItemArray[11].ToString() + "," + dr.ItemArray[12].ToString() + "," + dr.ItemArray[13].ToString() + "," + dr.ItemArray[14].ToString() + "," + dr.ItemArray[15].ToString() + "," + dr.ItemArray[16].ToString() + "," + dr.ItemArray[17].ToString()
                + "," + dr.ItemArray[18].ToString() + "," + dr.ItemArray[19].ToString() + "," + dr.ItemArray[20].ToString() + "," + dr.ItemArray[21].ToString() + ")";
                    cmd.ExecuteNonQuery();

            }

person sleath    schedule 24.09.2009    source источник
comment
Какая версия Excel? Вы получаете ошибки? Вы нормально открываете соединение?   -  person Gratzy    schedule 24.09.2009
comment
Или вы просто повторно задаете этот вопрос stackoverflow.com / questions / 1468076 / c-accessing-excel-worksheet /   -  person Gratzy    schedule 24.09.2009


Ответы (2)


Это было странно, но есть разница в файлах Excel, к которым мне удалось получить доступ. Мне удалось получить доступ к файлам .xls, но не к файлам .xlsx. Я создавал файл Excel в формате XML и не мог получить к нему доступ с помощью OleDB, поэтому я просто изменил формат файла, и он сработал.

person sleath    schedule 17.10.2009

Эта строка подключения позволит вам получить доступ к файлам Excel 2007 .xlsx ...

OleDbConnection xlconnection = new OleDbConnection();

xlconnection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + @";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
person Jesse McCulloch    schedule 17.10.2009