Ошибка при выгрузке данных в 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;