как заполнить лист Excel из базы данных с помощью Aspose - PullRequest
0 голосов
/ 07 июня 2018

как заполнить лист Excel из базы данных, используя Aspose total или Aspose Cells, давая шаблон Excel, который может содержать формулы, которые должны оставаться активными после заполнения документа Excel.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

после создания папки в вашем проекте, где у вас будет файл Excel, который вы хотите сгенерировать, и добавление Aspose.Total к вашим используемым отчетам.Создайте следующий метод для создания файла Excel:

    protected void CurrentExcel_Click(object sender, EventArgs e){

        //getting the items that will fill the cells(should be different 
        //than below)
        Items searchItems = new SearchItems();

        searchItems.ProjectStatusIDs = new List<int> { 24721 };
        List<CurrentRecord> resultsRecords = 
        YourEntity.GetCurrentRecords().OrderBy(c => c.LOCATION).ToList();
        // the template Excel file that you will fill
        string fileName = "currents_list_Excel_Shortened.xlsx";
        //define a workbook that will help you access Excel file cells
        Workbook wb = new Workbook(Server.MapPath(string.Format(@" 
        {0}/{1}", "~/Templates/", fileName)));

        //adding worksheet that will be filled
        wb.Worksheets.Add(SheetType.Worksheet);
        Worksheet ws = wb.Worksheets[0];
        ws.Name = "Current Shortened";
        try
        {

            Aspose.Cells.Cells wsCells = ws.Cells;
            int x = 8;
            foreach (CurrentRecord mwa in resultsRecords)
            {



                Cell Cell1 = ws.Cells[x, 0];
                Cell Cell2 = ws.Cells[x, 1];
                Cell Cell3 = ws.Cells[x, 2];
                Cell Cell4 = ws.Cells[x, 3];
                Cell Cell5 = ws.Cells[x, 4];
                Cell Cell6 = ws.Cells[x, 5];
                Cell Cell7 = ws.Cells[x, 6];
                Cell Cell8 = ws.Cells[x, 7];
                Cell Cell9 = ws.Cells[x, 8];
                Cell Cell10 = ws.Cells[x, 9];
                Cell Cell11 = ws.Cells[x, 10];
                Cell Cell12 = ws.Cells[x, 11];
                Cell Cell13 = ws.Cells[x, 12];
                Cell Cell14 = ws.Cells[x, 13];
                // here filling your object properties to the cells which 
                //should be different than the one below
                Cell1.PutValue(mwa.ID + "-" + 
                mwa.LOCATION);
                Cell2.PutValue(mwa.number);
                Cell3.PutValue(mwa.Rate + " " + mwa.POSTMILE + " " + 
                mwa.POSTMILE_KPList);
                Cell4.PutValue(mwa.PROJECT_LOCATION_TYPE);
                Cell5.PutValue(mwa.RELName.Split(' ')[0] + "/" + 
                mwa.RECell);
                if (mwa.COMPANY_NAME != "")
                {
                    Cell6.PutValue(mwa.COMPANY_NAME.IndexOf('-') != -1 ? 
                    mwa.COMPANY_NAME.Split(' ')[0] : 
                    mwa.COMPANY_NAME.Split(' ')[0] + ' ' + 
                    mwa.COMPANY_NAME.Split(' ')[1]);
                }
                Cell7.PutValue(mwa.PROJECT_STATUS);
                Cell8.PutValue(mwa.PROJECT_LOCATION_WORKING_DAYS);
                Cell9.PutValue(mwa.PROJECT_STATUS_PE_DAYS);
                Cell10.PutValue(mwa.PROJECT_STATUS_WORK_SUSPENDED == true 
                ? "Yes" : "NO");
                Cell11.PutValue(string.Format("{0:0.######}", 
                mwa.PROJECT_STATUS_WORK_COMPLETED) + "/" + 
                string.Format("{0:0.######}", 
                mwa.PROJECT_STATUS_TIME_COMPLETED));
                Cell12.PutValue(mwa.M600 != null ? string.Format("{0:d}", 
                mwa.M600) : "TBD");
                Cell13.PutValue(mwa.Contractual != null ? string.Format(" 
                {0:d}", mwa.Contractual) : "TBD");
                Cell14.PutValue(mwa.PROJECT_STATUS_UPDATED_EST_COMPLETION 
                != null ? string.Format("{0:d}", 
                mwa.PROJECT_STATUS_UPDATED_EST_COMPLETION) : "TBD");

                x++;


            }
            wb.Save(HttpContext.Current.Response, fileName, 
            Aspose.Cells.ContentDisposition.Attachment, new 
            XlsSaveOptions(Aspose.Cells.SaveFormat.Xlsx));
        }
        catch(Exception ex)
        {
            throw;
        }
    }
0 голосов
/ 07 июня 2018

Итак, чтобы импортировать или объединить данные из вашего источника данных в файлы Excel, у нас есть два варианта, и вы можете попробовать любой из них для своих нужд.например,

1) Используйте функцию смарт-маркеров, предоставляемую Aspose.Cells.Таким образом, вы можете создать файл шаблона дизайнера, вставив маркеры в ячейки на листах, вы также можете отформатировать ячейки в соответствии с вашими потребностями.Например, вы можете создавать отчеты для таблиц своей базы данных, связанные с различными наборами данных или в соответствии с вашими желаемыми записями и т. Д. Смарт-маркеры обрабатываются на основе вашего желаемого набора данных / набора результатов, который может быть результатом запроса или хранимой процедуры, поэтому выможет указать или написать запрос, который будет обработан, используя ваш собственный код, например, с помощью API-интерфейсов ADO.NET, и получить данные для заполнения в DataTable или variable / Array.Когда маркеры обрабатываются, данные вставляются в ячейки вместо вставленных маркеров на листах файла конструктора, см. Полный документ документ .

2) Используйте параметры импорта данныхиз разных источников данных, предоставляемых Aspose.Cells.Например, вы можете использовать метод Cells.ImportDataTable (), чтобы импортировать таблицу данных для заполнения рабочего листа в Рабочей книге.Пожалуйста, смотрите документ для вашей полной справки.

PS.Я работаю разработчиком поддержки / евангелистом в Aspose.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...