Member 14183767 Ответов: 2

Именные листы экспортируются из SQL в excel с помощью EFP PLUS


Я экспортирую данные из хранимой процедуры sql в excel на отдельных листах в одной книге . код работает, однако мои имена листов называются "sheet1", "sheet2" и т. д. На вкладке excel file

я хотел бы иметь свои собственные имена листов на вкладке excel file, например sheet1 be name 'BenCount', sheet2 'зарплата', чтобы они имели смысл и т. д. мой код:

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

      SqlConnection connex = new SqlConnection();

      SqlCommand command = new SqlCommand("spTest", con) { CommandType = System.Data.CommandType.StoredProcedure };

      SqlDataAdapter sda = new SqlDataAdapter();

      command.Connection = con;
      sda.SelectCommand = command;
      command.CommandTimeout = 600;

      DataSet ds = new DataSet();

      sda = new SqlDataAdapter("spTest", con);
      sda.Fill(ds);

//Set Name of DataTables.
      ds.Tables[0].TableName = "Bencount";
      ds.Tables[1].TableName = "Wages";
      ds.Tables[3].TableName = "BeneficiariestobeExctracted";
      ds.Tables[4].TableName = "benificiarieswithnoAccNo";
      ds.Tables[5].TableName = "account number>11 characters/wages<100";
      ds.Tables[6].TableName = "beneficiary appear on more than project";
      ds.Tables[7].TableName = "Duplications by account number";
      ds.Tables[8].TableName = "Check Missing Beneficiaries";





          if (ds.Tables.Count > 0)
          {
              MemoryStream ms = new MemoryStream();
              int i = 1;
              using (ExcelPackage package = new ExcelPackage(ms))
              {
                  foreach (DataTable table in ds.Tables)
                  {
                      ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(table.TableName);



                      worksheet.Cells["A2"].LoadFromDataTable(table, true);
                  }
                  Response.Clear();
                  package.SaveAs(Response.OutputStream);
                  Response.AddHeader("content-disposition", "attachchment; filename=Example.xls");

                  Response.Charset = "";
                  Response.ContentType = "application/vnd.xls";
                  Response.End();
              }
          }
  }
}

2 Ответов

Рейтинг:
10

Member 14183767

Привет я использовал оператор if для переименования каждого листа

if (worksheet.Name == "sheet1")
                    { worksheet.Name = "Bencount"; }.

спасибо за совет :)


Рейтинг:
1

Member 14183767

привет , спасибо за ваш ответ, однако я использую EFP PLUS, и у меня есть 9 листов, которые мне нужно переименовать в список имен, которые я выбрал, пожалуйста, помогите