Парсим Excel в c#

Иногда нужно быстро распарсить Excel, пишем простенький метод в библиотеке Utils, который будет всегда под рукой

public static DataTable ExcelToDataTable(string Path)
{
    // создаем соединение
    string strConn = null;
    if (Path.GetExtension(path) == ".xls")
        strConn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};
Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"", path);
    else if (Path.GetExtension(path) == ".xlsx")
        strConn = String.Format("Provider=Microsoft.Ace.OLEDB.12.0;Data Source={0};
Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"", path);

    DataTable dt = null;
    using (OleDbConnection conn = new OleDbConnection(strConn))// создаем соединение 
    {
        conn.Open();
        // узнаем название листа
        DataTable dbSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString();
        // выполняем команду
        string strExcel = "select * from [" + firstSheetName + "]";
        OleDbDataAdapter cmd = new OleDbDataAdapter(strExcel, strConn);
        DataSet ds = new DataSet();
        cmd.Fill(ds, "table");
        // преобразуем DataSet в DataTable
        dt = ds.Tables["table"];
    }
    return dt;
}

На сервер необходим установить провайдер AccessDatabaseEngine.
И в настройках iis: Пулы приложения -> mysite.com -> Дополнительные параметры -> Разрешить 32 разрядные приложения.

Ссылки:

По теме:
Выполняем get запрос по расписанию c#

Напишем простенькую программу, которая будет выполнять get запрос по истечению определенного интервала времени. class Program { private static Timer _timer; Read more

Выполняем действие по расписанию (asp.net, c#)

Раньше я писал программку, которая выполняла get запрос по расписанию, но так же можно написать обычный HttpModule, который будет делать Read more

Выбираем технологии и инструменты для разработки веб приложений

1 Выбор и настройка инструментов для разработки фронтенда (только самые важные): 1.1 Twitter bootstrap — фреймворк позволяет писать качественную верстку Read more

Делаем водяной знак на картинке (c#, .net)

Нанесем несколько раз картинку watermark на другую картинку. public void DrawWatermark(string watermarkImagePath, System.Drawing.Image image) { using (System.Drawing.Image watermarkImage = System.Drawing.Image.FromFile(watermarkImagePath)) Read more

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *