Ошибка при выгрузке данных в Excel - C#

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

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

Ребят, подскажи в чем ошибка. Выгружается только одна запись из запроса, хотя должно быть 5 строк. Выгружается только шапка и одна строка. В чем дело?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using Excelb = Microsoft.Office.Interop.Excel;
 
namespace Monitoring_v._2._0
{
    /// <summary>
    /// Логика взаимодействия для MBPage.xaml
    /// </summary>
    public partial class page: UserControl
    {
        public page()
        {
            InitializeComponent();
        }

        private void but(object sender, RoutedEventArgs e)
        {
          //  System.Windows.Forms.SaveFileDialog saveSrez = new System.Windows.Forms.SaveFileDialog();
           // saveSrez.AddExtension = true;
          //  saveSrez.DereferenceLinks = false;
         //   saveSrez.Title = "Экспорт в Excel";
         ////   saveSrez.Filter = "Книга Excel (*.xlsx)|*.xlsx";
        ///    saveSrez.DefaultExt = "xlsx";
        //    if (saveSrez.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        //    {
            
                DataTable dt = new DataTable();
                string sql = "select DateReport from table";
                dt = ServerCommand.SQLExecute(sql);
               Excelb.Application xlApp = new Excelb.Application(); // запускаем Excel для чтения входного файла
Excelb.Workbook wb = xlApp.Workbooks.Open(System.Windows.Forms.Application.StartupPath + "\\Template_1.xlsx"); // открываем шаблон указываю документ, в который я буду записывать данные
Excelb.Worksheet ws = (Excelb.Worksheet)wb.Worksheets["Лист1"];   //  выбор листа 
int x = 2; // строка листа excel
foreach (DataRow nc in dt.Rows) 
{
    ws.Cells[x, 1] = nc["DateReport"].ToString(); //F1 - название столбца в dataTable dt  //ws.Cells[x, 1]  - x-строка в excel документе; 1 - столбец
             //ws.Cells[x, 2] = nc["F2"].ToString(); //F2 - название столбца в dataTable dt 
           //   ws.Cells[x, 3] = nc["F3"].ToString();
           //   ws.Cells[x, 4] = nc["F4"].ToString();
             x++;
{
   
    //wb.SaveAs();
wb.Close();
xlApp.Quit();

            ///MessageBox.Show("ок");

          //  }
 
           // MessageBox.Show("Действие отменено");
            
        }
}
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            DataTable dt = new DataTable();
            string sql = "select DateReport from table";
                      dt = ServerCommand.SQLExecute(sql);
                      for (int i = 0; i < dt.Rows.Count; i++)
                      {
                          string newDate =
                              Convert.ToDateTime(dt.Rows[i][0]).ToString("dd.MM.yyyy");
                          start.Items.Add(newDate);
                          finish.Items.Add(newDate);
                          start.Text = start.Items[start.Items.Count - 1].ToString();
                          finish.Text = finish.Items[finish.Items.Count - 1].ToString();
                      }
                         // MessageBox.Show("ок");
        }

        }

    }

Решение задачи: «Ошибка при выгрузке данных в Excel»

textual
Листинг программы
var exc = (object[,])excel.Range[From + ":" + To].Value;

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


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

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

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