protected void btnExcel_Click(object sender, System.EventArgs e) { DataTable dataTable = new DataTable(); dataTable = ConstructReport.GetEvenAnalysis(this.txtPrjCode.Text.Trim(), this.txtPrjName.Text.Trim(), 0, 0, base.UserCode, this.hfldIsWBSRelevance.Value); if (dataTable.Rows.Count > 0) { DataRow dataRow = dataTable.NewRow(); dataRow["Num"] = "合计"; dataRow["ContractBud"] = dataTable.Compute("sum(ContractBud)", "1>0"); dataRow["DirectCost"] = dataTable.Compute("sum(DirectCost)", "1>0"); dataRow["IndirectCost"] = dataTable.Compute("sum(IndirectCost)", "1>0"); dataRow["GainLoss"] = dataTable.Compute("sum(GainLoss)", "1>0"); if (System.Convert.ToDecimal(dataRow["ContractBud"]) != 0m) { decimal d = System.Convert.ToDecimal(dataRow["GainLoss"]) / System.Convert.ToDecimal(dataRow["ContractBud"]); dataRow["RatioGainLoss"] = (decimal.Floor(d * 10000m) / 100m).ToString() + "%"; } else { dataRow["RatioGainLoss"] = "0.00%"; } dataTable.Rows.Add(dataRow); } dataTable = this.GetTitleByTable(dataTable); System.Collections.Generic.List <ExcelHeader> list = new System.Collections.Generic.List <ExcelHeader>(); list.Add(ExcelHeader.Create("累计数", 1, 5, 3, 0)); list.Add(ExcelHeader.Create("实际成本", 2, 2, 4, 0)); System.Collections.Generic.List <int> list2 = new System.Collections.Generic.List <int>(); foreach (DataColumn dataColumn in dataTable.Columns) { if (dataColumn.Ordinal >= 3) { list2.Add(dataColumn.Ordinal); } if (dataColumn.Ordinal < 3) { list.Add(ExcelHeader.Create(dataColumn.ColumnName, 3, 0, 0, 3)); } else { if (dataColumn.Ordinal > 3 && dataColumn.Ordinal < 6) { list.Add(ExcelHeader.Create(dataColumn.ColumnName, 3, 0, 0, 0)); } else { list.Add(ExcelHeader.Create(dataColumn.ColumnName, 2, 0, 0, 2)); } } } ExcelHelper.ExportExcel(dataTable, "盈亏分析", "盈亏分析", "盈亏分析.xls", list, null, 3, base.Request.Browser.Browser); }