zoukankan      html  css  js  c++  java
  • Aspose.Cells导入与导出excel

           /// <summary>
            /// 导入excel
            /// </summary>
            /// <param name="strFilePath"></param>
            /// <returns></returns>
            public static DataTable ImportCompareMeanExcel(string strFilePath)
            {
                Workbook workbook = new Workbook();
                DataTable dtExcel = null;
                try
                {
                    workbook.Open(strFilePath);
                    Cells cells = workbook.Worksheets[0].Cells;
                    dtExcel = cells.ExportDataTableAsString(12, 0, cells.MaxDataRow + 1, cells.MaxColumn + 1, true);//showTitle
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                return dtExcel;
            }
            /// <summary>
            /// 根据excel模板导出数据
            /// </summary>
            /// <param name="context"></param>
            /// <param name="model">数据</param>
            /// <param name="templateFileName">模板路径</param>
            /// <param name="sheetName">excel工作簿名称</param>
            /// <param name="fileNameHead">导出文件名称</param>
            /// <param name="action">需要补充的数据</param>
            public  static void DataTableExportIsExcel(HttpContext context, DataTable model, string templateFileName, string sheetName, string fileNameHead,Action<WorkbookDesigner, DataTable> action)
            {
    
                MemoryStream ms = ExportHelper.OutModelFileToStream(model, templateFileName, sheetName, action);
                byte[] bt = ms.ToArray();
                string fileName = fileNameHead + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; //客户端保存的文件名  
                //以字符流的形式下载文件  
                context.Response.ContentType = "application/vnd.ms-excel";
                //通知浏览器下载文件而不是打开
                context.Response.AddHeader("Content-Disposition",
                "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
                context.Response.BinaryWrite(bt);
                context.Response.Flush();
                context.Response.End();
            }
    
    
    
            /// <summary>
            /// 返回excel文件流
            /// </summary>
            /// <param name="model">数据</param>
            /// <param name="templateFileName">模板路径</param>
            /// <param name="sheetName">excel工作簿名称</param>
            /// <param name="fileNameHead">导出文件名称</param>
            /// <param name="action">需要补充的数据</param>
            /// <returns>excel文件流</returns>
            public static MemoryStream OutModelFileToStream(DataTable model, string templateFileName, string sheetName, Action<WorkbookDesigner, DataTable> action)
            {
                WorkbookDesigner designer = new WorkbookDesigner();
                designer.Open(templateFileName);
                designer.SetDataSource(model);
                //对designer做额外操作
                if (action != null)
                {
                    action(designer, model);
                }
                designer.Process();
                if (!string.IsNullOrEmpty(sheetName))
                {
                    designer.Workbook.Worksheets[0].Name = sheetName;
                }
                return designer.Workbook.SaveToStream();
            }
  • 相关阅读:
    vue 之 vuex
    vue中this.$router.push() 传参
    ES6新特性
    css优先级
    创建第一个vue工程
    对Vue.js的认知
    前端的认知与见解
    Web前端常见问题
    数据库如何进行索引优化
    Python FAQ
  • 原文地址:https://www.cnblogs.com/sjyzz/p/8405814.html
Copyright © 2011-2022 走看看