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

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

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

Ребят, подскажи в чем ошибка. Выгружается только одна запись из запроса, хотя должно быть 5 строк. Выгружается только шапка и одна строка. В чем дело?
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14. using System.Data;
  15. using Excelb = Microsoft.Office.Interop.Excel;
  16. namespace Monitoring_v._2._0
  17. {
  18. /// <summary>
  19. /// Логика взаимодействия для MBPage.xaml
  20. /// </summary>
  21. public partial class page: UserControl
  22. {
  23. public page()
  24. {
  25. InitializeComponent();
  26. }
  27.  
  28. private void but(object sender, RoutedEventArgs e)
  29. {
  30. // System.Windows.Forms.SaveFileDialog saveSrez = new System.Windows.Forms.SaveFileDialog();
  31. // saveSrez.AddExtension = true;
  32. // saveSrez.DereferenceLinks = false;
  33. // saveSrez.Title = "Экспорт в Excel";
  34. //// saveSrez.Filter = "Книга Excel (*.xlsx)|*.xlsx";
  35. /// saveSrez.DefaultExt = "xlsx";
  36. // if (saveSrez.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  37. // {
  38. DataTable dt = new DataTable();
  39. string sql = "select DateReport from table";
  40. dt = ServerCommand.SQLExecute(sql);
  41. Excelb.Application xlApp = new Excelb.Application(); // запускаем Excel для чтения входного файла
  42. Excelb.Workbook wb = xlApp.Workbooks.Open(System.Windows.Forms.Application.StartupPath + "\\Template_1.xlsx"); // открываем шаблон указываю документ, в который я буду записывать данные
  43. Excelb.Worksheet ws = (Excelb.Worksheet)wb.Worksheets["Лист1"]; // выбор листа
  44. int x = 2; // строка листа excel
  45. foreach (DataRow nc in dt.Rows)
  46. {
  47. ws.Cells[x, 1] = nc["DateReport"].ToString(); //F1 - название столбца в dataTable dt //ws.Cells[x, 1] - x-строка в excel документе; 1 - столбец
  48. //ws.Cells[x, 2] = nc["F2"].ToString(); //F2 - название столбца в dataTable dt
  49. // ws.Cells[x, 3] = nc["F3"].ToString();
  50. // ws.Cells[x, 4] = nc["F4"].ToString();
  51. x++;
  52. {
  53. //wb.SaveAs();
  54. wb.Close();
  55. xlApp.Quit();
  56.  
  57. ///MessageBox.Show("ок");
  58.  
  59. // }
  60. // MessageBox.Show("Действие отменено");
  61. }
  62. }
  63. }
  64.  
  65. private void UserControl_Loaded(object sender, RoutedEventArgs e)
  66. {
  67. DataTable dt = new DataTable();
  68. string sql = "select DateReport from table";
  69. dt = ServerCommand.SQLExecute(sql);
  70. for (int i = 0; i < dt.Rows.Count; i++)
  71. {
  72. string newDate =
  73. Convert.ToDateTime(dt.Rows[i][0]).ToString("dd.MM.yyyy");
  74. start.Items.Add(newDate);
  75. finish.Items.Add(newDate);
  76. start.Text = start.Items[start.Items.Count - 1].ToString();
  77. finish.Text = finish.Items[finish.Items.Count - 1].ToString();
  78. }
  79. // MessageBox.Show("ок");
  80. }
  81.  
  82. }
  83.  
  84. }

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

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

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


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

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

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы