Выгрузить данные из html таблицы в в Excel - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть файл в нем данные находятся в таблице <table> данные ,как мне из выгрузить в экзель подскажите пож-та
Здравствуйте. Есть файл в нем данные находятся в таблице <table> данные ,как мне из выгрузить в экзель подскажите пож-та
Думаю сделать так: Спарсить таблицу (<table>) с данными из файла (1.html) результат поместить в datagridview или datatable (куда будет удобно) потом уже в экзель. Как вы думаете друзья это возможно реализовать?

Решение задачи: «Выгрузить данные из html таблицы в в Excel»

textual
Листинг программы
using System;
using System.Data.OleDb;
using System.Data;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
 
class Program
{
    static void Main(string[] args)
    {
        const string fileName = @"D:\мтт.htm";
        const string connectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
            fileName
            + ";Extended Properties=\"HTML Import;HDR=YES;IMEX=1\";";
        if (!File.Exists(fileName))
        {
            Console.WriteLine("HTML файл не найден");
            Console.ReadKey(true);
            return;
        }
        OleDbConnection connection = new OleDbConnection(connectionString);
        connection.Open();
        DataTable shema = connection.GetSchema("TABLES", new string[] {});
        if (shema.Rows.Count == 0)
        {
            Console.WriteLine("В файле не найдено таблиц");
            Console.ReadKey(true);
            return;
        }
        string tableName = (string)shema.Rows[0]["TABLE_NAME"];
        string query = string.Format("SELECT * FROM [{0}]", tableName);
        OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        connection.Close();
        string excelFileName = @"D:\cyberforum.xlsx";
        if (File.Exists(excelFileName))
            File.Delete(excelFileName);
        Excel.Application application = new Excel.Application();
        object missing = Type.Missing;
        application.Workbooks.Add(missing);
        Excel.Worksheet sheet = application.ActiveSheet as Excel.Worksheet;
        for (int i = 0; i < table.Columns.Count; i++)
            sheet.Cells[1, i + 1] = table.Columns[i].ColumnName;
        for (int i = 0; i < table.Rows.Count; i++)
            for (int j = 0; j < table.Columns.Count; j++)
                sheet.Cells[i + 2, j + 1] = table.Rows[i][j];
        application.ActiveWorkbook.SaveAs(excelFileName, missing,
            missing, missing,
            missing, missing,
            Excel.XlSaveAsAccessMode.xlExclusive, missing,
            missing, missing,
            missing, missing);
        application.Quit();
        /*---  Кому не лень может доделает код  ---*/
        /*string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFileName +
                               @";Extended Properties=""Excel 12.0;HDR=YES;""";
        OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);    
        string[] listFieldsName = new string[table.Columns.Count];
        for (int i = 0; i < table.Columns.Count; i++)
            listFieldsName[i] = "[" + table.Columns[i].ColumnName + "]";
        string fields = string.Join(", ", listFieldsName);
        string insertQuery = string.Format("INSERT INTO [Лист1$] ({0})", fields);
        string[] @params = new string[listFieldsName.Length];
        for (int i = 0; i < table.Columns.Count; i++)
            @params[i] = "?" + table.Columns[i].ColumnName;
        string str = string.Join(", ", @params);
        insertQuery += string.Format(" VALUES ({0})", str);
        OleDbDataAdapter excelAdapter = new OleDbDataAdapter();
        excelAdapter.InsertCommand = new OleDbCommand(insertQuery, excelConnection);
        for (int i = 0; i < @params.Length; i++)
            excelAdapter.InsertCommand.Parameters.Add(@params[i], OleDbType.VarChar, 255, listFieldsName[i]);
        Console.WriteLine(excelAdapter.Update(table));*/
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.571 из 5
Похожие ответы