/// <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; }
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; }
public ActionResult EM_Output(string id) { CsvStreamWriter csvWriter = new CsvStreamWriter(); IList<string> dataList = new List<string>(); dataList.Add(string.Format("{0},{1},{2},{3},{4},{5},", Resources.SunResource.PLANT_DEVICEMONITOR_UNIT, Resources.SunResource.PLANT_DEVICEMONITOR_NAME, Resources.SunResource.DEVICE_MONITOR_SUNSHINE, Resources.SunResource.DEVICE_MONITOR_WIND_SPEED, Resources.SunResource.DEVICE_MONITOR_TEMPERATURE, 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.ENVRIOMENTMONITOR_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},{4},{5},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name, device.getMonitor(MonitorType.MIC_DETECTOR_SUNLINGHT), device.getMonitor(MonitorType.MIC_DETECTOR_WINDSPEED), device.getMonitor(MonitorType.PLANT_MONITORITEM_AMBIENTTEMP_CODE), device.runData.updateTime.ToString("MM-dd HH:mm:ss") )); } } #endregion foreach (Device device in deviceList) { if (!device.deviceTypeCode.Equals(DeviceData.ENVRIOMENTMONITOR_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},{4},{5},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name, device.getMonitor(MonitorType.MIC_DETECTOR_SUNLINGHT), device.getMonitor(MonitorType.MIC_DETECTOR_WINDSPEED), device.getMonitor(MonitorType.PLANT_MONITORITEM_AMBIENTTEMP_CODE), device.runData.updateTime.ToString("MM-dd HH:mm:ss") )); } } foreach (Device device in deviceList) { if (!device.deviceTypeCode.Equals(DeviceData.ENVRIOMENTMONITOR_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},{4},{5},", plantUnit.displayname, string.IsNullOrEmpty(device.name) ? device.fullName : device.name, device.getMonitor(MonitorType.MIC_DETECTOR_SUNLINGHT), device.getMonitor(MonitorType.MIC_DETECTOR_WINDSPEED), device.getMonitor(MonitorType.PLANT_MONITORITEM_AMBIENTTEMP_CODE), device.runData.updateTime.ToString("MM-dd HH:mm:ss") )); } } csvWriter.AddStrDataList(dataList); string fullFile = Server.MapPath("/") + "tempexportfile\\" + Resources.SunResource.DEVICE_MONITOR_EM + ".csv"; csvWriter.Save(fullFile); //转化为csv格式的字符串 ActionResult tmp = File(fullFile, "text/csv; charset=UTF-8", urlcode(Resources.SunResource.DEVICE_MONITOR_EM) + ".csv"); return tmp; }
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"); }
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"); }