导入Excel文件

 

                    try
                    {
                        //创建Excel文件的对象  
                        HSSFWorkbook book = new HSSFWorkbook();
                        if (result.Code == 0 && result.Data?.Count > 0)
                        {
                            //添加一个sheet  
                            NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");
                            //给sheet1添加第一行的头部标题  
                            NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
                            NPOI.SS.UserModel.ICellStyle style = book.CreateCellStyle();   //样式对象

                            #region 写入头部标题,
                            var upmodel = result.Data[0];
                            var rowsId = 0;
                            PropertyInfo[] propertys = upmodel.GetType().GetProperties();
                            foreach (PropertyInfo pinfo in propertys)
                            {
                                row1.CreateCell(rowsId).SetCellValue(pinfo.Name);
                                rowsId += 1;
                            }
                            #endregion

                            var rowtempid = 1;
                            foreach (var item in result.Data) //循环写入
                            {
                                NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(rowtempid);
                                PropertyInfo[] Itempropertys = item.GetType().GetProperties();

                                for (int i = 0; i < Itempropertys.Length; i++)
                                {
                                    var pinfoa = Itempropertys[i];
                                    //四个参数分别是:起始行,结束行, 起始列,结束列
                                    sheet1.AddMergedRegion(new CellRangeAddress(rowtempid, rowtempid, i , i ));
                                    rowtemp.CreateCell(i).SetCellValue(pinfoa.GetValue(item,null).ToStr());
                                }
                                rowtempid++;
                            }
                        }
                        else
                        {
                            Logger.Error("导出未通过好友,没有数据! ");
                            return new HttpResponseMessage(HttpStatusCode.NoContent);
                        }
                        // 写入到服务端   
                        var filename = CurrentUser.Account + "_未通过好友_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                        var filePath = "/ueditor-asp/asp/upload/RefusesFriend/";

                        //物理完整路径                    
                        string toFileFullPath = HttpContext.Current.Server.MapPath(filePath);
                        //检查是否有该路径没有就创建
                        if (!Directory.Exists(toFileFullPath))
                        {
                            Directory.CreateDirectory(toFileFullPath);
                        }
                        //将要保存的完整文件名                
                        string toFile = toFileFullPath + filename;

                        FileStream fs = File.Create(toFile);
                        book.Write(fs);
                        fs.Close();

                        HttpResponseMessage response = new HttpResponseMessage();

                        var fileStream = new FileStream(toFile, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                        response.Content = new StreamContent(fileStream);
                        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                        response.Content.Headers.ContentDisposition.FileName = filename;
                        response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");  // 这句话要告诉浏览器要下载文件  vnd.ns-excel 
                        response.Content.Headers.ContentLength = new FileInfo(toFile).Length;
                        return response;
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("导出未通过好友,错误: " + ex.ToString());
                        throw;
                    }

 

posted @ 2019-04-20 10:29  我,你  阅读(81)  评论(1编辑  收藏  举报