Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2023, 09:07   #1
user1993
 
Регистрация: 07.04.2023
Сообщений: 4
По умолчанию Отчет C# и Ексель

Есть отчет который по коду выводит только 15 листов мне нужно сделать так чтобы данный отчет выводил только активные листы, подскажите правильно ли описано
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Reflection;
using NativeExcel;
using System.Diagnostics;

...........
System.Data.DataTable MyConnteyner = new System.Data.DataTable(); 
                SqlDataAdapter MyAdapter = new SqlDataAdapter(MySelectCommand);
                MyAdapter.Fill(MyConnteyner);
                IWorkbook book = NativeExcel.Factory.OpenWorkbook(Application.StartupPath + @"\Sost_obor_.xls");
                string Path = @"\\Docx\report\";
                string file_name = Path + DateTime.Now.ToFileTime() + "Sost_obor_.xls";
                book.SaveAs(file_name);
                book = NativeExcel.Factory.OpenWorkbook(file_name);
                IWorksheet MySheet = book.Worksheets[1];
                /*IWorksheet MySheet2 = book.Worksheets[2];*/
                IRange range = MySheet.Range[1, 1, 1, 1];
                IWorksheet worksheet = (IWorksheet)book.Worksheets[1];
                worksheet.Activate();
            int i = 5;
                    int j = 2;
                    int k = 1;
                    foreach (DataRow MyRow in MyConnteyner.Rows) 
                    {
                        if (i == 45)
                        {
                            if (j == 5)
                            {
                                j = -1;
                                k++;
                            }
                            j += 3;
                            i = 5;
                        }
                        
                            if (k == 1) /*Первый лист*/   /* EI0000038154 */
                {
                                MySheet.Cells[i + 1, j].Value = MyRow["DocDate"];
                                MySheet.Cells[i + 4, j].Value = MyRow["DocDate"];
                                MySheet.Cells[i, j].Value = (String)MyRow["SlCode"] + "\n" + (String)MyRow["FullName"];
                                MySheet.Cells[i + 5, j].Value = (String)MyRow["box"];
                                i = i + 8;
                            }
                                      
                          
            }
  
                book.SaveAs(file_name);
                System.Diagnostics.Process.Start(file_name);

                this.Close();
            }
.....
user1993 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ексель VBA Slavatron1984 Фриланс 9 17.11.2017 17:56
ексель (макросы) Tolian92 Помощь студентам 0 29.05.2013 20:21
Ексель+ВБА A_L_E_X Фриланс 6 21.09.2010 16:03
Кодировка в ексель CradleOfSong Microsoft Office Excel 10 11.10.2009 22:10
Функции в Ексель Юра_ Microsoft Office Excel 5 16.12.2008 14:26