如何使用Aspose从数据库中填充excel表

时间:2018-06-07 19:05:24

标签: excel templates using fill aspose

如何使用Aspose total或Aspose Cells从数据库中填充Excel工作表 给出一个Excel模板,该模板可能包含在填写Excel文档后应保持活动的公式。

2 个答案:

答案 0 :(得分:1)

好吧,要将数据源中的数据导入或合并到Excel文件,我们有两个选项,您可以尝试任何一个满足您的需求。 e.g

1)使用Aspose.Cells提供的智能标记功能。因此,您可以创建一个设计器模板文件,将标记插入到工作表中的单元格中,您也可以根据需要格式化单元格。例如,您可以为与不同数据集相关的数据库表创建报告,也可以根据您所需的记录等创建报告。智能标记根据您所需的数据集/结果集进行处理,这可能是查询或存储过程的结果,因此您可以使用您自己的代码(例如ADO.NET API)指定或编写要处理的查询,并将数据填入DataTable或variables / Array。处理完标记后,数据将插入到单元格中,而不是设计文件表格中的粘贴标记,请参阅document以获取完整参考。

2)使用Aspose.Cells提供的不同数据源中的数据导入选项。例如,您可以使用Cells.ImportDataTable()方法导入数据表以填充工作簿中的工作表。请参阅该文档以供完整参考。

PS。我是Aspose的支持开发人员/传播者。

答案 1 :(得分:0)

在项目中创建一个文件夹后,您将生成要生成的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;
        }
    }