Как загрузить таблицу из базы данных в Excel и отформатировать ее с помощью кнопки? - PullRequest
0 голосов
/ 23 июня 2019

это на самом деле C # .Net.У меня есть база данных, прикладной уровень для запроса и интерфейс с лентой.Внутри ленты у меня есть кнопка для генерации сводки по файлу, которая будет включать основные моменты, помещая каждый проект в отдельную вкладку в одном Excel.У меня есть большая часть написанного кода, в том числе редактор электронных таблиц в Open XML, мне просто нужна помощь, когда я нажимаю кнопку создания сводки, она отправляет запрос на прикладной уровень для данных и форматирует его в excel.

Я попытался его инициализировать.У меня есть класс DataAccess, который запрашивает таблицу в зависимости от того, какой номер ID введен, но мне нужно каким-то образом запросить или получить эту таблицу после ввода идентификатора и нажатия кнопки GenerateSummary.

    private void btnGenerateSummary_Click(object sender, RibbonControlEventArgs e)
              {
                  using (ExcelWriter.CreateExcelWorkbook)
                  {
                      GenerationInfo input = new GenerationInfo();
                      DataAccess DataAccess = new DataAccess();
                      string sapID;
                      sapID = SapIdBox.Text;
                      DataAccess.GetCns41DataBySapId(sapID);
                      List<Cns41Information> PMList = new List<Cns41Information>();
                      PMList = DataAccess.GetCns41DataBySapId(sapID);
                      WEC.Core.OpenXmlDoc.ExcelWriter spreadsheetwriter = new WEC.Core.OpenXmlDoc.ExcelWriter();

                      object missingvalue = System.Reflection.Missing.Value;


                      input.reportQuery = lbReportTypes.SelectedItem.ToString();

                      string outputPath;
                      bool useExcel2003Format;
                      useExcel2003Format = true;

                      outputPath = string.Format(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\file.xlsx");
                      WEC.Core.OpenXmlDoc.ExcelWriter.CreateExcelWorkbook(dt, outputPath, useExcel2003Format);
                  }


    System.Data.DataTable dt = new System.Data.DataTable();
    dt.Columns.Add("My_test_col1", typeof(string));
    dt.Columns.Add("My_test_col2", typeof(string));

and in my DataAccess class

public List<cns41information> GetCns41DataBySapId(string sapId)
{
List<cns41information> items = new List<cns41information>();
DataTable dt = null;
try
{
using (PWD_TAB_Entities model = new PWD_TAB_Entities())
{
//Query Needs updated based on sapId
decimal sapIdConversion = Convert.ToDecimal(sapId);
// List of Projects registered under Sap Id
List<string> projects = GetProjectList(sapIdConversion);

var values =
model.PROMOT_CNS41_VW_RO
.Where(r => projects.Contains(r.NEW_PROJECT_KEY));


foreach (var item in values)
{
//AutoMapper
items.Add(
DataMapper.GetMapper().GetMappedDto<cns41information>(item));
}
dt = CreateDataTable(model.PROMOT_CNS41_VW_RO, values);
}
}
catch (Exception ex)
{
string message = ex.Message;
}
return items;

}

Iхочу иметь возможность открыть таблицу проектов, связанных с идентификатором, в формате Excel, но я не знаю, как поместить ее в кнопку создания сводки.У меня отдельно есть поле для редактирования, где каждый вводит свой идентификатор и подключается к прикладному уровню, прикладной уровень должен запросить БД и затем отправить информацию обратно во внешний интерфейс, но я не знаю, как это получить и вывести ее в Excel.

...