EM_Y Ответов: 1

Экспорт datamysql в определенные ячейки листа excel с помощью WPF


Мне нужно экспортировать MySQL dataTable с помощью wpf в лист Excel, что можно сделать.
Затем мои экспортированные данные будут вставлены, начиная с ячейки " A1 " листа Excel.

Есть ли возможность поместить его в определенную ячейку? Мне нужно экспортировать фрейм данных в диапазон, начинающийся с ячейки A5. Возможно ли это?

Что я уже пробовал:

вот мой экспортный код он отлично работает :

private void export_Click(object sender, RoutedEventArgs e)
        {
            using (var conx = new MySqlConnection(constring))
            {
                conn.Open();

            //// extraction excel 

            string Mysql = null;
            string data = null;
            int i = 0;
            int j = 0;

            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;

            object misValue = System.Reflection.Missing.Value;

            xlApp = new Excel.Application();
            xlApp.Visible = true;
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);


            Mysql = "SELECT * from database.Table";

            MySqlDataAdapter cmd = new MySqlDataAdapter(Mysql,conn);
            DataSet ds = new DataSet();
            cmd.Fill(ds);

            for (i = 0; i <= ds.Tables[0].Rows.Count-1 ; i++)
            {
                for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
                {
                    data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
                    
                    xlWorkSheet.Cells[ i+1, j+1] = data;


                }

            }
           }

           }

1 Ответов

Рейтинг:
6

Patrice T

Обычно вы не используете этот код,

xlWorkSheet.Cells[ i+1, j+1] = data;

и он заменяется чем-то вроде
xlWorkSheet.Cells[ i+1, j+1].Value = data;

или
xlWorkSheet.Cells[ i+1, j+1].Formula = data;

в зависимости от того, в чем заключаются данные.
Цитата:
Есть ли возможность поместить его в определенную ячейку? Мне нужно экспортировать фрейм данных в диапазон, начинающийся с ячейки A5. Возможно ли это?

Ваш код начинает вставляться в A1, просто добавьте 4, и все готово.
xlWorkSheet.Cells[ i+5, j+1] = data;


EM_Y

Это работает, спасибо вам за вашу помощь !

EM_Y

Я хочу сравнить 2 ячейки из одного столбца при экспорте данных в excel
Я добавил этот код в свой цикл, но он не работает для меня :
Спасибо Вам за помощь :)

if (xlWorkSheetCarteProd.Cells[i + 5, j].Value  ==  xlWorkSheetCarteProd.Cells[i + 6, j].Value)                    {          xlWorkSheetCarteProd.Cells[i + 6, j].Value = "";    }


@ppolymorphe

Patrice T

Вы можете открыть для этого новый вопрос.
"Я добавил этот код в свой цикл, но он не работает для меня"
Вы забыли сказать, что вы хотите сделать с этим кодом.
Определение "не работает для меня"

EM_Y

Я открою новый вопрос .