/// <summary>
 /// 导出csv格式的图表数据
 /// </summary>
 /// <param name="filename"></param>
 /// <param name="serieNo"></param>
 /// <returns></returns>
 public ActionResult ExportCsvChart(string filename, string serieNo)
 {
     CsvStreamWriter scvWriter = new CsvStreamWriter();
     ChartData chartData = TempDataUtil.getChartData(serieNo);
     string reportname = string.Empty;
     if (chartData != null)
     {
         reportname = (filename.Equals("chart") ? "" : filename) + chartData.name.Replace("/", "").Replace(" ", "");
         IList<string> dataList = new List<string>();
         string xname = Resources.SunResource.CUSTOMREPORT_CHART_TIME;
         if (chartData.names.Length > 0 && !string.IsNullOrEmpty(chartData.names[0]))
         {
             xname = chartData.names[0] + "[" + chartData.units[0] + "]";
         }
         dataList.Add(xname);
         dataList.Add(convertArrtoStr(chartData.categories));
         foreach (YData ydata in chartData.series)
         {
             dataList.Add(ydata.name);
             dataList.Add(convertArrtoStr(ydata.data));
         }
         scvWriter.AddStrDataList(dataList);
     }
     string fullFile = Server.MapPath("/") + "tempexportfile\\" + serieNo + ".csv";
     scvWriter.Save(fullFile);
     //转化为csv格式的字符串
     ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(reportname) + ".csv");
     return tmp;
 }
Example #2
0
        public ActionResult Units_Output(int id)
        {
            Plant plant = FindPlant(id);
            IList<PlantUnit> plantUnits = PlantUnitService.GetInstance().GetAllPlantUnitsByPlantId(id);
            CsvStreamWriter writer = new CsvStreamWriter();
            IList<string> listData = new List<string>();

            listData.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},", Resources.SunResource.PLANT_UNIT_LIST_STATUS, Resources.SunResource.PLANT_UNIT_DATA_SOURCE_CODE
                , Resources.SunResource.PLANT_UNIT_LIST_UNIT_NAME,
                Resources.SunResource.PLANT_UNIT_LIST_POWER + "(kW)",
                Resources.SunResource.PLANT_UNIT_LIST_YEAR_ENERGY + "(kWh)",
                Resources.SunResource.PLANT_UNIT_LIST_ENERGY + "(kWh)",
                Resources.SunResource.PLANT_UNIT_LIST_MONTH_ENERGY + "(kWh)",
                Resources.SunResource.PLANT_UNIT_LIST_MONTH_ENERGY_KWP + "(kWh/kWp)",
                Resources.SunResource.PLANT_UNIT_LIST_YEAR_ENERGY_KWP + "(kWh/kWp)"
                ));

            CollectorMonthDayData cmData = null;
            CollectorYearData cyData = null;
            foreach (PlantUnit unit in plantUnits)
            {

                float currentMonthEnergy = 0;
                float currentYearEnergy = 0;
                cmData = CollectorMonthDayDataService.GetInstance().GetCollectorMonthDayData(DateTime.Now.Year, unit.collector.id, DateTime.Now.Month);
                currentMonthEnergy = cmData == null ? 0 : cmData.count();
                cyData = CollectorYearDataService.GetInstance().GetCollectorYearData(unit.collector.id, DateTime.Now.Year);
                currentYearEnergy = cyData == null ? 0 : cyData.dataValue;
                listData.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},", unit.isWork(plant.timezone) ? Resources.SunResource.MONITORITEM_WORKING : Resources.SunResource.MONITORITEM_STOPPED, string.Format("\t{0}", unit.collector.code)
               , string.Format("\t{0}", unit.displayname),
               unit.TodayPower(plant.timezone).ToString(),
               currentYearEnergy.ToString(),
               unit.displayTotalEnergy.ToString(),
               currentMonthEnergy.ToString(),
               Math.Round(currentMonthEnergy / unit.chartPower, 2).Equals(double.NaN) ? "0" : Math.Round(currentMonthEnergy / unit.chartPower, 2).ToString(),
               Math.Round(currentYearEnergy / unit.chartPower, 2).Equals(double.NaN) ? "0" : Math.Round(currentYearEnergy / unit.chartPower, 2).ToString()
               ));

            }

            writer.AddStrDataList(listData);

            string fullFile = Server.MapPath("/") + "tempexportfile\\" + Resources.SunResource.PLANT_UNIT_LIST_FILENAME + ".csv";
            writer.Save(fullFile);
            //转化为csv格式的字符串
            ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(Resources.SunResource.PLANT_UNIT_LIST_FILENAME) + ".csv");
            return tmp;
        }
Example #3
0
        public ActionResult Ammeter_Output(string id)
        {
            CsvStreamWriter csvWriter = new CsvStreamWriter();
            IList<string> dataList = new List<string>();
            dataList.Add(string.Format("{0},{1},{2},{3}",
                Resources.SunResource.PLANT_DEVICEMONITOR_UNIT,
                Resources.SunResource.PLANT_DEVICEMONITOR_NAME,
                Resources.SunResource.DEVICEMONITORITEM_924,
                Resources.SunResource.PLANT_DEVICEMONITOR_LASTED_UPDATED_TIME
                ));
            int pid = 0;
            int.TryParse(id, out  pid);
            Plant plant = FindPlant(pid);
            IList<Device> deviceList = SortPlantDevice(pid);
            bool fault = false;
            float curMonthEnergy = 0L;
            PlantUnit plantUnit;

            #region 异常
            foreach (Device device in deviceList)
            {
                if (!device.deviceTypeCode.Equals(DeviceData.AMMETER_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (fault)
                {
                    dataList.Add(string.Format("{0},{1},{2},{3}",
                       plantUnit.displayname,
                       string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
                       device.getMonitor(MonitorType.MIC_AMMETER_POSITIVEACTIVEPOWERDEGREE),
                       device.runData.updateTime.ToString("MM-dd HH:mm:ss")
                       ));
                }
            }
            #endregion
            foreach (Device device in deviceList)
            {
                if (!device.deviceTypeCode.Equals(DeviceData.AMMETER_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (device.Over1Day(plant.timezone) && device.runData.isFault() == false)
                {
                    dataList.Add(string.Format("{0},{1},{2},{3}",
                  plantUnit.displayname,
                  string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
                 device.getMonitor(MonitorType.MIC_AMMETER_POSITIVEACTIVEPOWERDEGREE),
                  device.runData.updateTime.ToString("MM-dd HH:mm:ss")
              ));

                }
            }

            foreach (Device device in deviceList)
            {

                if (!device.deviceTypeCode.Equals(DeviceData.CABINET_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (!device.Over1Day(plant.timezone) && device.runData.isFault() == false)
                {
                    dataList.Add(string.Format("{0},{1},{2},{3}",
                    plantUnit.displayname,
                    string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
                    device.getMonitor(MonitorType.MIC_AMMETER_POSITIVEACTIVEPOWERDEGREE),
                    device.runData.updateTime.ToString("MM-dd HH:mm:ss")
                    ));
                }
            }

            string fullFile = Server.MapPath("/") + "tempexportfile\\" + Resources.SunResource.DEVICE_MONITOR_AMMETER + ".csv";
            csvWriter.Save(fullFile);
            //转化为csv格式的字符串
            ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(Resources.SunResource.DEVICE_MONITOR_AMMETER) + ".csv");
            return tmp;
        }
Example #4
0
        public ActionResult Inverter_Output(string id)
        {
            CsvStreamWriter csvWriter = new CsvStreamWriter();
            IList<string> dataList = new List<string>();
            dataList.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},", Resources.SunResource.PLANT_DEVICEMONITOR_UNIT, Resources.SunResource.PLANT_DEVICEMONITOR_NAME,
                Resources.SunResource.PLANT_DEVICEMONITOR_INSTAL_POWER + "(kWh)",
                Resources.SunResource.PLANT_DEVICEMONITOR_CURRENT_POWER + "(W)",
                Resources.SunResource.PLANT_DEVICEMONITOR_DEVICE_STATUS, Resources.SunResource.PLANT_OVERVIEW_TODAY_ENERGRY1 + "(kWh)",
                Resources.SunResource.PLANT_UNIT_LIST_MONTH_ENERGY + "(kWh)",
                Resources.SunResource.PLANT_UNIT_LIST_MONTH_ENERGY_KWP + "(kWh/kWp)",
                Resources.SunResource.PLANT_UNIT_LIST_TOTAL_ENERGY + "(kWh)",
                Resources.SunResource.PLANT_DEVICEMONITOR_LASTED_UPDATED_TIME
                ));
            int pid = 0;
            int.TryParse(id, out  pid);
            Plant plant = FindPlant(pid);
            IList<Device> deviceList = SortPlantDevice(pid);
            bool fault = false;
            float curMonthEnergy = 0L;
            PlantUnit plantUnit;

            #region 异常
            foreach (Device device in deviceList)
            {
                if (!device.deviceTypeCode.Equals(DeviceData.INVERTER_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (fault)
                {
                    object value = ReflectionUtil.getProperty(DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month), string.Format("d_{0}", DateTime.Now.Day));

                    dataList.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
             device.designPower.ToString("0.0"),
             fault ? "0" : device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_TOTALYGPOWER),
             device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_DEVICESTATUS),
             value == null ? "0" : value.ToString(),
             StringUtil.formatFloat(curMonthEnergy,"0.0"),
             //curMonthEnergy.ToString("0.00"),
             Math.Round(curMonthEnergy / device.chartPower, 2).ToString(),
             device.TotalEnergy.ToString(),
             device.runData.updateTime.ToString("MM-dd HH:mm:ss")
             ));
                }
            }

            #endregion

            foreach (Device device in deviceList)
            {
                if (!device.deviceTypeCode.Equals(DeviceData.INVERTER_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (device.Over1Day(plant.timezone) && device.runData.isFault() == false)
                {
                    object value = ReflectionUtil.getProperty(DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month), string.Format("d_{0}", DateTime.Now.Day));

                    dataList.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
             device.designPower.ToString("0.0"),
             fault ? "0" : device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_TOTALYGPOWER),
             device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_DEVICESTATUS),
             value == null ? "0" : value.ToString(),
             //curMonthEnergy.ToString("0.00"),
             StringUtil.formatFloat(curMonthEnergy, "0.0"),
             Math.Round(curMonthEnergy / device.chartPower, 2).ToString(),
             device.TotalEnergy.ToString(),
             device.runData.updateTime.ToString("MM-dd HH:mm:ss")
             ));

                }
            }

            foreach (Device device in deviceList)
            {
                if (!device.deviceTypeCode.Equals(DeviceData.INVERTER_CODE) || device.runData == null || device.isHidden)
                    continue;
                plantUnit = PlantUnitService.GetInstance().GetPlantUnitByCollectorId(device.collectorID);
                curMonthEnergy = DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month).count();
                fault = device.runData.isFault();
                if (!device.Over1Day(plant.timezone) && device.runData.isFault() == false)
                {
                    object value = ReflectionUtil.getProperty(DeviceMonthDayDataService.GetInstance().GetDeviceMonthDayData(DateTime.Now.Year, device.id, DateTime.Now.Month), string.Format("d_{0}", DateTime.Now.Day));

                    dataList.Add(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name,
             device.designPower.ToString("0.0"),
             fault ? "0" : device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_TOTALYGPOWER),
             device.runData.getMonitorValueWithStatus(MonitorType.MIC_INVERTER_DEVICESTATUS),
             value == null ? "0" : value.ToString(),
             //curMonthEnergy.ToString("0.00"),
             StringUtil.formatFloat(curMonthEnergy, "0.0"),
             Math.Round(curMonthEnergy / device.chartPower, 2).ToString(),
             device.TotalEnergy.ToString(),
             device.runData.updateTime.ToString("MM-dd HH:mm:ss")
             ));

                }
            }
            csvWriter.AddStrDataList(dataList);
            string fullFile = Server.MapPath("/") + "tempexportfile\\" + Resources.SunResource.DEVICE_MONITOR_INVERTER + ".csv";
            csvWriter.Save(fullFile);
            //转化为csv格式的字符串
            ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(Resources.SunResource.DEVICE_MONITOR_INVERTER) + ".csv");
            return tmp;
        }
        public ActionResult DownLoadAllPlantsReport(string id,string reportId,string cTime)
        {
            DefineReport report = reportService.GetRunReportById(reportId);
            int tId = report.ReportType;
            string weekTime = string.Empty;
            if (tId == DataReportType.TOTAL_REPORT_CODE)
            {
                IList<int> workYears = null;
                if (!(string.IsNullOrEmpty(id)))
                {
                    workYears = collectorYearDataService.GetWorkYears(report.plant);
                }
                else
                {
                    workYears = collectorYearDataService.GetWorkYears(report.user.plants);
                }
                if (workYears.Count > 0)
                {
                    cTime = workYears[0] + "-" + workYears[workYears.Count - 1];
                }
            }
            else if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                string[] wTime = reportService.convertToDateArr(tId, cTime);
                int year1 = int.Parse(wTime[0].Substring(0, 4));
                int mm1 = int.Parse(wTime[0].Substring(4, 2));
                int dd1 = int.Parse(wTime[0].Substring(6, 2));
                int year2 = int.Parse(wTime[1].Substring(0, 4));
                int mm2 = int.Parse(wTime[1].Substring(4, 2));
                int dd2 = int.Parse(wTime[1].Substring(6, 2));
                weekTime = year1 + "/" + mm1 + "/" + dd1 + "-" + year2 + "/" + mm2 + "/" + dd2;

            }
            IList<string> dataList = new List<string>();
            IList<object> obj = reportService.getDatabyItemCodes(report, cTime);
            IList<int> itemCode = addIntNumtoList(obj[0] as List<int>);
            Hashtable plantDataHash = obj[1] as Hashtable;
            Hashtable deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv = new CsvStreamWriter();
            dataList.Add("                        " + report.ReportName + "                       ");

            ArrayList list2 = new ArrayList();
            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            if (tId == 2)
            {
                list2.Add(weekTime);
            }
            else
            {
                list2.Add(cTime);
            }
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();

            int i = 1;
            foreach (int code in itemCode)
            {

                int tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }

                if (tmpcode != 0)
                {
                    keystr = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }
            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            CsvStreamWriter scvWriter = new CsvStreamWriter();
            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);

            return File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv");
        }
        public ActionResult DownLoadNotDayReport(string id, string reportId, string cTime)
        {
            DefineReport report = reportService.GetRunReportById(reportId);
            int tId = report.ReportType;
            string weekTime = string.Empty;
            if (tId == DataReportType.TOTAL_REPORT_CODE)
            {
                IList<int> workYears = null;
                if (!(string.IsNullOrEmpty(id)))
                {
                    workYears = collectorYearDataService.GetWorkYears(report.plant);
                }
                else
                {
                    workYears = collectorYearDataService.GetWorkYears(report.user.plants);
                }
                if (workYears.Count > 0)
                {
                    cTime = workYears[0] + "-" + workYears[workYears.Count - 1];

                }

            }
            else if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                string[] wTime = reportService.convertToDateArr(tId, cTime);
                int year1 = int.Parse(wTime[0].Substring(0, 4));
                int mm1 = int.Parse(wTime[0].Substring(4, 2));
                int dd1 = int.Parse(wTime[0].Substring(6, 2));
                int year2 = int.Parse(wTime[1].Substring(0, 4));
                int mm2 = int.Parse(wTime[1].Substring(4, 2));
                int dd2 = int.Parse(wTime[1].Substring(6, 2));
                 weekTime = year1 + "/" + mm1 + "/" + dd1 + "-" + year2 + "/" + mm2 + "/" + dd2;
            }
            IList<string> dataList = new List<string>();
            IList<object> obj = reportService.getDatabyItemCodes(report, cTime);
            IList<int> itemCode = addIntNumtoList(obj[0] as List<int>);
            Hashtable plantDataHash = obj[1] as Hashtable;
            Hashtable deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv = new CsvStreamWriter();
            dataList.Add("                        " + report.ReportName + "                       ");
            ArrayList list2 = new ArrayList();
            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            if (tId == DataReportType.WEEK_REPORT_CODE)
            {
                list2.Add(weekTime);
            }
            else
            {
                list2.Add(cTime);
            }
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();
            ArrayList list4 = new ArrayList();
            int i = 1;
            foreach (int code in itemCode)
            {

                int tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }
                if (tmpcode != 0)
                {
                    keystr = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }

            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            dataList.Add(Resources.SunResource.REPORT_DEVICE_COUNT_DATA);

            foreach (DictionaryEntry de in  deviceDataHash)
            {
                i = 1;
                string tmpcode = de.Key.ToString();
                string keystr = "", unit = "";
                if (!tmpcode.StartsWith(" "))
                {
                    keystr = MonitorType.getMonitorTypeByCode(MonitorType.PLANT_MONITORITEM_ENERGY_CODE).name;
                    unit = MonitorType.getMonitorTypeByCode(MonitorType.PLANT_MONITORITEM_ENERGY_CODE).unit;
                }
                IList<string[]> dataArrList = (IList<string[]>)de.Value;
                for (int k = 0; k < dataArrList.Count; k++)
                {
                    ArrayList list5 = new ArrayList();
                    string[] dataArr = dataArrList[k];
                    if (i == 1)
                    {
                        i++;
                        foreach (string v in dataArr)
                        {
                            list5.Add(v);
                        }
                    }
                    else if (i == 2)
                    {
                        i++;
                        list5.Add(keystr + " " + unit);
                        for (int n = 1; n < dataArr.Length; n++)
                        {
                            list5.Add(dataArr[n]);
                        }
                    }
                    else
                    {
                        for (int m = 0; m < dataArr.Length; m++)
                        {

                           list5.Add(dataArr[m]==null?" ":dataArr[m]);
                        }
                    }
                   dataList.Add(csv.ConvertToSaveLine(list5));
                }
            }
            CsvStreamWriter scvWriter = new CsvStreamWriter();
            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);
            return File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv");
        }
        public ActionResult DownLoadDayReport(string id, string reportId, string cTime)
        {
            DefineReport report = reportService.GetRunReportById(reportId);
            int tId = report.ReportType;
            IList<string> dataList = new List<string>();
            IList<object> obj = reportService.getDatabyItemCodes(report, cTime);
            IList<int> itemCode = addIntNumtoList(obj[0] as List<int>);
            Hashtable plantDataHash = obj[1] as Hashtable;
            Hashtable deviceDataHash = obj[2] as Hashtable;
            CsvStreamWriter csv = new CsvStreamWriter();
            dataList.Add("                        " + report.ReportName + "                       ");
            ArrayList list2 = new ArrayList();
            list2.Add("                                         " + Resources.SunResource.REPORT_VIEW_TIME);
            list2.Add(cTime);
            dataList.Add(csv.ConvertToSaveLine(list2));
            dataList.Add(Resources.SunResource.REPORT_PLANT_COUNT_DATA);
            ArrayList list3 = new ArrayList();
            ArrayList list4 = new ArrayList();
            int i = 1;
            foreach (int code in itemCode)
            {

                int tmpcode = code;
                string keystr = " ", keyvalue = " ";

                if (i == 5)
                {
                    i = 1;
                }
                else
                {
                    i++;
                }
                if (tmpcode != 0)
                {
                    keystr = DataItem.getNameByCode(tmpcode);
                    keyvalue = plantDataHash[tmpcode].ToString();
                    list3.Add(keystr);
                    list3.Add(keyvalue);
                }

            }
            dataList.Add(csv.ConvertToSaveLine(list3));
            dataList.Add(Resources.SunResource.REPORT_DEVICE_COUNT_DATA);

            list4.Add(Resources.SunResource.REPORT_COUNT_ITEM);
            list4.Add(Resources.SunResource.REPORT_COUNT_DEVICE);
            list4.Add("7:00");
            list4.Add("8:00");
            list4.Add("9:00");
            list4.Add("10:00");
            list4.Add("11:00");
            list4.Add("12:00");
            list4.Add("13:00");
            list4.Add("14:00");
            list4.Add("15:00");
            list4.Add("16:00");
            list4.Add("17:00");
            list4.Add("18:00");
            list4.Add("19:00");
            list4.Add(Resources.SunResource.REPORT_COUNT_TODAYSUN);
            dataList.Add(csv.ConvertToSaveLine(list4));

            foreach (DictionaryEntry de in deviceDataHash)
            {
                i = 1;
                string tmpcode = de.Key.ToString();
                string keystr = "", unit = "";
                if (!tmpcode.StartsWith(" "))
                {
                    keystr = DataItem.getNameByCode(int.Parse(tmpcode));
                    unit = MonitorType.getMonitorTypeByCode(int.Parse(tmpcode)).unit;
                }
                IList<string[]> dataArrList = (IList<string[]>)de.Value;
                for (int k = 1; k < dataArrList.Count; k++)
                {
                    ArrayList list5 = new ArrayList();
                    string[] dataArr = dataArrList[k];
                    if (i == 1)
                    {
                        i++;
                        list5.Add(keystr + " " + unit);

                        list5.Add(dataArr[1]);
                        list5.Add(dataArr[2]);
                        list5.Add(dataArr[3]);
                        list5.Add(dataArr[4]);
                        list5.Add(dataArr[5]);
                        list5.Add(dataArr[6]);
                        list5.Add(dataArr[7]);
                        list5.Add(dataArr[8]);
                        list5.Add(dataArr[9]);
                        list5.Add(dataArr[10]);
                        list5.Add(dataArr[11]);
                        list5.Add(dataArr[12]);
                        list5.Add(dataArr[13]);
                        list5.Add(dataArr[14]);
                        list5.Add(dataArr[15]);
                    }
                    else
                    {
                        list5.Add(" ");
                        list5.Add(dataArr[1]);
                        list5.Add(dataArr[2]);
                        list5.Add(dataArr[3]);
                        list5.Add(dataArr[4]);
                        list5.Add(dataArr[5]);
                        list5.Add(dataArr[6]);
                        list5.Add(dataArr[7]);
                        list5.Add(dataArr[8]);
                        list5.Add(dataArr[9]);
                        list5.Add(dataArr[10]);
                        list5.Add(dataArr[11]);
                        list5.Add(dataArr[12]);
                        list5.Add(dataArr[13]);
                        list5.Add(dataArr[14]);
                        list5.Add(dataArr[15]);
                    }
                    dataList.Add(csv.ConvertToSaveLine(list5));
                }

            }
            CsvStreamWriter scvWriter = new CsvStreamWriter();
            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv");
            //转化为csv格式的字符串
            //string res="dsfdsf";
            //byte[] bytes = Encoding.Default.GetBytes(res);
            return File(Server.MapPath("/") + "tempexportfile/" + (report.ReportName + "-" + cTime) + ".csv", "text/csv; charset=UTF-8", urlcode(report.ReportName.Replace(" ", "") + "-" + cTime) + ".csv");
        }
Example #8
0
        public ActionResult AllPlants_Output()
        {
            User curUser = UserUtil.getCurUser();
            CsvStreamWriter scvWriter = new CsvStreamWriter();
            IList<string> dataList = new List<string>();
            dataList.Add(string.Format("{0},{1},{2},{3}", Resources.SunResource.USER_ALLPLANTS_NAME,
                Resources.SunResource.USER_ALLPLANTS_COUNTRY,
                Resources.SunResource.USER_ALLPLANTS_CITY,
                Resources.SunResource.USER_ALLPLANTS_ENERGY));
            foreach (Plant plant in curUser.plants)
            {
                dataList.Add(string.Format("{0},{1},{2},{3}", plant.name,
               plant.country,
               plant.city,
               string.Format("{0}({1})", plant.DisplayTotalEnergy, plant.TotalEnergyUnit)));
            }

            scvWriter.AddStrDataList(dataList);

            string fullFile = Server.MapPath("/") + "tempexportfile\\" + Resources.SunResource.USER_PLANT_LIST_FILENAME + ".csv";
            scvWriter.Save(fullFile);
            //转化为csv格式的字符串
            ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(Resources.SunResource.USER_PLANT_LIST_FILENAME) + ".csv");
            return tmp;
        }
        /// <summary>
        /// 输出csv文件
        /// </summary>
        /// <param name="allmts"></param>
        /// <param name="timemtMap"></param>
        /// <param name="filename"></param>
        /// <returns></returns>
        public ActionResult DownLoadCsvRunData(IList<string> allmts, IDictionary<string, IDictionary<string, string>> timemtMap, string filename)
        {
            CsvStreamWriter scvWriter = new CsvStreamWriter();

            //输入出到csv文件中的数据列表
            IList<string> dataList = new List<string>();
            //设置抬头行
            dataList.Add("                        " + filename + "                       ");
            //循环设置数据行
            //设置标题行
            allmts.Insert(0, Resources.SunResource.REPORT_TIME);
            dataList.Add(scvWriter.ConvertToSaveLine(allmts));
            //数据行临时list
            IList<string> tempList = new List<string>();
            foreach (string key in timemtMap.Keys)
            {
                dataList.Add(scvWriter.ConvertToSaveCell(key) + "," + scvWriter.ConvertToSaveLine(timemtMap[key].Values));
            }

            scvWriter.AddStrDataList(dataList);
            scvWriter.Save(Server.MapPath("/") + "tempexportfile/" + filename + ".csv");
            return File(Server.MapPath("/") + "tempexportfile/" + filename + ".csv", "text/csv; charset=UTF-8", urlcode(filename) + ".csv");
        }