C#导出数据到Excel——简单数据导出

#region 读取模板
        Excel.Application xapp = new Excel.Application();
        //导出数据的模板
        Excel.Workbook xbook = xapp.Workbooks._Open(context.Server.MapPath("~/Search/template/" + template), Missing.Value, Missing.Value,
                                Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                                Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

        Excel.Worksheet xsheet = (Excel.Worksheet)xbook.Sheets[1];
        #endregion

        #region 读取数据
        //导出文本
        Excel.Range rngD2 = xsheet.get_Range("D2", Missing.Value);
        rngD2.Value2 = row["productCode"].ToString();

        //...

        string imageUrl = context.Server.MapPath("~/admin/" + row["imageUrl"].ToString());
        
        //导出图片
        if (System.IO.File.Exists(imageUrl))
        {
            Excel.Range rngA11 = xsheet.get_Range("A11", Missing.Value);
            Excel.Pictures pics = xsheet.Pictures(Missing.Value) as Excel.Pictures;
            Excel.Picture pic = pics.Insert(imageUrl, Missing.Value);
            //设置图片的位置
            pic.Top = (double)rngA11.Top + 2;
            pic.Left = (double)rngA11.Left;
        }
        #endregion

        #region 保存数据
        string filePath = context.Server.MapPath("~/Search/download/" + folderName + "/" + Utils.CreateGuide() + ".xlsx");
        xbook.SaveAs(filePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
            Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
        xsheet = null;
        xbook.Close(Missing.Value, Missing.Value, Missing.Value);
        xbook = null;
        xapp.Quit();//如果不加这句代码,Excel对象不能从内存中退出  
        xapp = null;
        #endregion

可以自定义模板,按照指定模板的格式导出数据。


定义的Excel模板:

C#导出数据到Excel——简单数据导出_第1张图片


导出的结果:

C#导出数据到Excel——简单数据导出_第2张图片


你可能感兴趣的:(C#导出数据到Excel——简单数据导出)