Esempio n. 1
0
        public MemoryStream Export(List <string> removeColumns)//
        {
            //建立工作簿
            IWorkbook workbook = new XSSFWorkbook();

            string className = typeof(TEntity).Name;
            ISheet sheet     = workbook.CreateSheet(className);

            //建立列
            IRow tempIRow = sheet.CreateRow(0);

            //取得要處理的第一列
            tempIRow = sheet.GetRow(0);


            //每個迴圈都要產生一個資料列
            int i = 1, j = 0;//i: row, j: column

            Dictionary <string, string> tableHead = EntityPropertyName();

            foreach (var item in tableHead)
            {
                if (!removeColumns.Exists(r => r == item.Key))
                {
                    continue;
                }
                sheet.GetRow(0).CreateCell(j).SetCellValue(item.Value);  //輸出表頭
                j++;
            }

            CrudRepository <TEntity> repository   = new CrudRepository <TEntity>();
            var tableContent = repository.GetAll(); //資料庫提取資料

            foreach (var row in tableContent)
            {
                j = 0;
                sheet.CreateRow(i);
                IEnumerable props = row.GetType().GetProperties();

                foreach (PropertyInfo prop in props)       //取出屬性個數
                {
                    if (!removeColumns.Exists(r => r == prop.Name))
                    {
                        continue;
                    }
                    sheet.GetRow(i).CreateCell(j).SetCellValue(prop.GetValue(row).ToString());  //輸出內容,使用Reflection.PropertyInfo
                    j++;
                }
                i++;
            }



            MemoryStream MS = new MemoryStream();

            workbook.Write(MS);
            MS.Close();
            //使用File回傳
            return(MS);
        }
Esempio n. 2
0
        public void Logout(string name)
        {
            Member member = memberRepo.Get(m => m.Name == name);
            //紀錄登出時間
            LogRecord logRecord = logRecRepo.GetAll().Where(m => m.MemberId == member.ID)
                                  .OrderByDescending(m => m.LoginTime)
                                  .FirstOrDefault();

            logRecord.LogoutTime = DateTime.Now;
            logRecRepo.Update(logRecord);
        }