예제 #1
0
        public void ExcelReport(IQueryable <Rest> rests)
        {
            DataTableClass dt = new DataTableClass(rests);

            using (var stream = new MemoryStream())
            {
                //var builder = new ExcelReportBuilder();
                var builder = new ReportViewExcelBuilder();
                builder.Create(stream, dt.dt);

                Response.Clear();
                Response.ContentType = "text/html";
                Response.AddHeader("content-disposition", "attachment;fileName=RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx");
                Response.ContentEncoding = Encoding.UTF8;
                Response.BinaryWrite(stream.ToArray());
                Response.Flush();
                Response.End();
            }

            // XLWorkbook wb = new XLWorkbook();
            // wb.Worksheets.Add(dt.dt, "WorksheetName");
            // var work = wb.Worksheets;
            // var z = "C:\\Users\\" + wb.Author + "\\Downloads\\RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx";
            //wb.SaveAs("C:\\Users\\" + wb.Author + "\\Downloads\\RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx");

            //ViewBag.Rests = db.GetRests();

            //return RedirectToAction("Index");
        }
예제 #2
0
        private static Dictionary <int, List <List <string> > > AnalysisExcel(DataTableClass dataTableClass, int index)
        {
            if (dataTableClass == null)
            {
                return(null);
            }

            List <List <string> > dataList = new List <List <string> >();

            //解析需要保存的XML名(第一行第一列的值)
            string _fileName = dataTableClass.GetValue(0, 0).ToString();
            //将文件名存入到第一个数据
            List <string> fileNameList = new List <string>();

            fileNameList.Add(_fileName);
            dataList.Add(fileNameList);

            int columns = dataTableClass.Cols;
            int rows    = dataTableClass.Rows;

            //遍历所有属性名(第二行,第二列以后整行数据)
            List <string> AttributeList = new List <string>();

            for (int i = 1; i < columns; ++i)
            {
                string value = dataTableClass.GetValue(1, i).ToString();
                AttributeList.Add(value);
            }
            // 第二个数据保存属性值
            dataList.Add(AttributeList);

            // 表规则为从第四行,第二列开始读数据
            for (int i = 3; i < rows; i++)
            {
                List <string> rowList     = new List <string>();
                bool          isAvalidRow = true;
                for (int j = 1; j < columns; j++)
                {
                    string value = dataTableClass.GetValue(i, j).ToString();
                    if (j == 1 && i >= 3 && string.IsNullOrEmpty(value))
                    {
                        isAvalidRow = false;
                        break;
                    }
                    rowList.Add(value);
                }
                if (isAvalidRow)
                {
                    dataList.Add(rowList);
                }
            }

            dataDic[index] = dataList;

            return(dataDic);
        }
예제 #3
0
        private static void GetCSAttributeFile(DataTableClass dataTableClass)
        {
            StringBuilder         CSContentStr = new StringBuilder();
            List <List <string> > dataList     = new List <List <string> >();

            int columns = dataTableClass.Cols;
            int rows    = dataTableClass.Rows;

            string _fileName = dataTableClass.GetValue(0, 0).ToString();
            //将文件名存入到第一个数据
            List <string> fileNameList = new List <string>();

            fileNameList.Add(_fileName);
            dataList.Add(fileNameList);

            //第三行第三列存储的是数据类型
            CSContentStr.AppendLine("using System;");
            CSContentStr.AppendLine("using System.Collections.Generic;");
            CSContentStr.AppendLine("using System.Text;");
            string className = ProcessName(_fileName);

            CSContentStr.AppendLine("public class " + className + "{");

            //遍历所有属性名(第二行,第二列以后整行数据)
            List <string> AttributeList = new List <string>();

            for (int i = 1; i < columns; ++i)
            {
                string value = dataTableClass.GetValue(2, i).ToString();

                AttributeList.Add(value);

                //第三行数据数据结构处理
                //解析前三行 生成表结构
                string paramDesc = dataTableClass.GetValue(0, i).ToString();
                string paramType = dataTableClass.GetValue(2, i).ToString();
                paramType = GetAvalidType(paramType);
                string paramName = dataTableClass.GetValue(1, i).ToString();

                if (string.IsNullOrEmpty(paramName) || paramName.CompareTo("") == 0)
                {
                    continue;
                }

                CSContentStr.AppendLine("\t/// <summary>");
                CSContentStr.AppendLine("\t///" + paramDesc);
                CSContentStr.AppendLine("\t/// <summary>");
                //当前列的结构语句
                CSContentStr.AppendLine(string.Format("\tpublic {0} {1} ", paramType, paramName) + "{get;private set;}");
            }
            CSContentStr.AppendLine("}");
            // 第二个数据保存属性值
            dataList.Add(AttributeList);
            _classCustom.Add(className, CSContentStr);
        }
예제 #4
0
        private static Dictionary <int, List <List <string> > > AnalysisExcel(DataTableClass dataTableClass, int index)
        {
            if (dataTableClass == null)
            {
                return(null);
            }

            List <List <string> > dataList = new List <List <string> >();

            //解析需要保存的XML名(第一行第一列的值)
            //将文件名存入到第一个数据
            string _fileName = dataTableClass.GetValue(0, 0).ToString();

            List <string> fileNameList = new List <string>();

            fileNameList.Add(_fileName);
            dataList.Add(fileNameList);

            int rows    = dataTableClass.Rows;
            int columns = dataTableClass.Cols;

            // 遍历前三行
            // 第一行 属性说明
            // 第二行 属性名
            // 第三行 类型声明(int, string、、)
            for (int i = 0; i < rows; ++i)
            {
                List <string> AttributeList = new List <string>();
                bool          isAvalidRow   = true;
                for (int j = 1; j < columns; ++j)
                {
                    string value = dataTableClass.GetValue(i, j).ToString();

                    if (j == 1 && i >= 3 && string.IsNullOrEmpty(value))
                    {
                        isAvalidRow = false;
                        break;
                    }
                    AttributeList.Add(value);
                }
                if (isAvalidRow)
                {
                    dataList.Add(AttributeList);
                }
            }

            dataDic[index] = dataList;

            return(dataDic);
        }
예제 #5
0
        public JsonResult IndexJson(DataTableClass responseBody)
        {
            DataTableClass test1 = responseBody;

            Microsoft.EntityFrameworkCore.Query.IIncludableQueryable <Payment, Category> paymentsContext = _context.Payments.Include(p => p.Category);

            // return Json("{\"draw\": 1,\"recordsTotal\": 3,\"recordsFiltered\": 3,\"data\":"+ Json(paymentsContext.Take(3)) +"}");

            string test2 = "{\"draw\": 1,\"recordsTotal\": 3,\"recordsFiltered\": 3,\"data\":[{\"id\":1,\"payDate\":\"2018-07-31T00:00:00\",\"amount\":1,\"description\":\"111\",\"catogoryId\":1,\"category\":{\"id\":1,\"name\":\"CDA\",\"isActive\":true}},{\"id\":2,\"payDate\":\"2018-08-07T15:00:00\",\"amount\":2345789,\"description\":\"dfh dj\",\"catogoryId\":6,\"category\":{\"id\":6,\"name\":\"ENJ\",\"isActive\":true}},{\"id\":1003,\"payDate\":\"2018-08-09T11:03:00\",\"amount\":3457,\"description\":\"eyjtjrj\",\"catogoryId\":9,\"category\":{\"id\":9,\"name\":\"HLS\",\"isActive\":true}}]}";

            string test = "{\"draw\":1,\"recordsTotal\":11,\"recordsFiltered\":11,\"data\":[[\"Airixi\",\"Satou\",\"Accountant\",\"Tokyo\",\"28th Nov 08\",\"$162,700\"],[\"Angeli\",\"Ramos\",\"Chief Executive Officer (CEO)\",\"London\",\"9th Oct 09\",\"$1,200,000\"],[\"Ashton\",\"Cox\",\"Junior Technical Author\",\"San Francisco\",\"12th Jan 09\",\"$86,000\"],[\"Bradly\",\"Greer\",\"Software Engineer\",\"London\",\"13th Oct 12\",\"$132,000\"],[\"Brendn\",\"Wagner\",\"Software Engineer\",\"San Francisco\",\"7th Jun 11\",\"$206,850\"],[\"Brielo\",\"Williamson\",\"Integration Specialist\",\"New York\",\"2nd Dec 12\",\"$372,000\"],[\"Brunos\",\"Nash\",\"Software Engineer\",\"London\",\"3rd May 11\",\"$163,500\"],[\"Caesar\",\"Vance\",\"Pre-Sales Support\",\"New York\",\"12th Dec 11\",\"$106,450\"],[\"Carata\",\"Stevens\",\"Sales Assistant\",\"New York\",\"6th Dec 11\",\"$145,600\"],[\"Cedric\",\"Kelly\",\"Senior Javascript Developer\",\"Edinburgh\",\"29th Mar 12\",\"$433,060\"]]}";

            return(Json(test));
            //return test2;
        }