导出数据到excel里

//全局变量替换的字典。 globalDic.Add("$${YEAR}", "2015"),最后执行的操作是把word中所有$${YEAR}替换成2015.
Dictionary<String, String> globalDic = new Dictionary<String, String>();
globalDic.Add("$${YEAR}", _JiZheZheng_KaoShiShiBieHaoInfo.K_NianFen.ToString() + "年");
globalDic.Add("$${SUBEXAMNAME}", _JiZheZheng_KaoShiShiBieHaoInfo.K_XiaoLei);
globalDic.Add("${TongJiorMingXi}", LeiXIng);
globalDic.Add("${LeiXing}", XingZhi);
globalDic.Add("${JiaoXueDianOrXiaoXue}", XingZhi);

//测试用的datatable,它的每一个row代表excel表格中的某一行。excel表格每一列的呈现顺序是和 String[] columns中变量的顺序是是一样的。
//DataTable dt = new DataTable("cart");
KaoDian_Data.Columns.Add("KaoSheng_Count", Type.GetType("System.String"));//考生数
KaoDian_Data.Columns.Add("ShangJiDiQu_Name", Type.GetType("System.String"));//县(市区)名称
KaoDian_Data.Columns.Add("G_Diquma", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("G_xuexiaoname", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("201", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("202", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("203", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("204", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("205", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("206", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("207", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("208", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("209", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("210", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("211", Type.GetType("System.String"));
KaoDian_Data.Columns.Add("DiQu_Name", Type.GetType("System.String"));

String Sql2 = "";//查找考试的条件
if (_JiZheZheng_KaoShiShiBieHaoInfo.K_PeiXunBanJiLuIsBaoMingKaoShi.Length > 5)
{
Sql2 += " and " + _JiZheZheng_KaoShiShiBieHaoInfo.K_PeiXunBanJiLuIsBaoMingKaoShi + " = '是' ";//是否报名本班
}

//添加新列的数据
for (int i = 0; i < KaoDian_Data.Rows.Count; i++)
{
KaoDian_Data.Rows[i]["ShangJiDiQu_Name"] = MethodLibrary.GetDiQuName(KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString().Substring(0, 2), MyUser.Info.L_BuMenSN);
KaoDian_Data.Rows[i]["G_diquma"] = KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString();
KaoDian_Data.Rows[i]["DiQu_Name"] = MethodLibrary.GetDiQuName(KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString(), MyUser.Info.L_BuMenSN);

String Sqltj = "";
if (LeiXIng == "明细")//明细
{
KaoDian_Data.Rows[i]["G_XueXiaoName"] = KaoDian_Data.Rows[i]["J_Name"].ToString();
//XueXiaoGangWei = My_Sql.Sql5("select * from nongcun_gangwei where g_xuexiaosn=" + KaoDian_Data.Rows[i]["J_SN"] + " and g_xueduan='"+XueDuan.ToString().Replace("'","''")+"' and G_XingZhi=" + Request.QueryString["xingzhi"].ToString().Replace("'","''"));
XueXiaoGangWei = My_Sql.Sql5("select * from nongcun_gangwei where g_xuexiaosn=" + KaoDian_Data.Rows[i]["J_SN"] + " and g_xueduan='"+XueDuan+"' and G_XingZhi=" + Request.QueryString["xingzhi"]);
}
else//汇总
{
KaoDian_Data.Rows[i]["G_XueXiaoName"] = "区县内全部学校";
//XueXiaoGangWei = My_Sql.Sql5("select distinct g_sn,G_DiQuMa, G_XueXiaoName, 201,202,203, 204, 205, 206, 207, 208, 209, 210, 211,G_JiHuaZhaoRenShu,g_xueke from nongcun_gangwei where g_xueduan='"+XueDuan.ToString().Replace("'","''")+"' and G_XingZhi=" + Request.QueryString["xingzhi"].ToString().Replace("'", "''") + " and G_DiQuMa='" + KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString().Replace("'", "''") + "'");
//Sqltj = " G_DiQuMa='" + KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString().Replace("'", "''") + "'";
XueXiaoGangWei = My_Sql.Sql5("select * from nongcun_gangwei where g_xueduan='"+XueDuan+"' and G_XingZhi=" + Request.QueryString["xingzhi"].ToString().Replace("'", "''") + " and G_DiQuMa='" + KaoDian_Data.Rows[i]["J_GuanLiYuan_DiQuDaiMa"].ToString().Replace("'", "''") + "'");
}

int zong = 0;
DataRow[] GangWeiZonggShu_Data = XueXiaoGangWei.Select(Sqltj);
for (int s = 0; s < GangWeiZonggShu_Data.Length; s++)
{
zong = zong + Convert.ToInt32(GangWeiZonggShu_Data[s]["G_JiHuaZhaoRenShu"].ToString());
}
KaoDian_Data.Rows[i]["KaoSheng_Count"] = zong; //学段招聘总人数。

DataRow[] XueKeList = XueXiaoGangWei.Select("G_XueKe=201");//获得语文学科

int xuekeren = 0;
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());
}
KaoDian_Data.Rows[i]["201"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=202");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());
}
KaoDian_Data.Rows[i]["202"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=203");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());
}
KaoDian_Data.Rows[i]["203"] = xuekeren;
xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=204");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["204"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=205");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["205"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=206");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["206"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=207");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["207"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=208");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["208"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=209");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["209"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=210");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());

}
KaoDian_Data.Rows[i]["210"] = xuekeren;

xuekeren = 0;
XueKeList = XueXiaoGangWei.Select("G_XueKe=211");
for (int b = 0; b < XueKeList.Length; b++)
{
xuekeren = xuekeren + Convert.ToInt32(XueKeList[b]["G_JiHuaZhaoRenShu"].ToString());
}
KaoDian_Data.Rows[i]["211"] = xuekeren;
}

String[] columns = new String[] { "ShangJiDiQu_Name", "G_DiQuMa", "DiQu_Name", "G_XueXiaoName", "KaoSheng_Count", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211" };//列排序

ExcelHelper helper = new ExcelHelper();
//模板的地址
string templatePath = "";
if (XueDuan.Equals("小学"))
{
templatePath = Server.MapPath("/image/Word_Excel_MoBan/v3(1801)小学学段岗位情况统计及明细表.xls");
}
else if (XueDuan.Equals("教学点"))
{
templatePath = Server.MapPath("/image/Word_Excel_MoBan/v3(1801)教学点学段岗位情况统计及明细表.xlsx");
}

//生成动态编码
String DongTaiBianMa = MethodLibrary.GetRandomString(10);

String WordName = _JiZheZheng_KaoShiShiBieHaoInfo.K_NianFen + "年" + _JiZheZheng_KaoShiShiBieHaoInfo.K_Name + "《报名点情况统计表》_" + DongTaiBianMa + "_" + MyUser.Info.R_SN + ".xls";//新生成的表名称
string objPath = Server.MapPath("/image/Word_Excel_ShengCheng/" + WordName);//存储路径

helper.GenerateExcelByDicAndDataTable(templatePath, objPath, globalDic, KaoDian_Data, columns);//生成Excel

this.TiShi.Visible = false;
Response.Write("<br />  已生成完成,请保存到本地查看。");

//如果出现中文乱码就用这个
try
{
string filePath = Server.MapPath("/Image/Word_Excel_ShengCheng/") + WordName;
FileInfo info = new FileInfo(filePath);
long fileSize = info.Length;
Response.Clear();
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(WordName));
//不指明Content-Length用Flush的话不会显示下载进度
Response.AddHeader("Content-Length", fileSize.ToString());
Response.TransmitFile(filePath, 0, fileSize);
Response.Flush();
Response.Close();
}
catch
{
Response.Write("文件生成错误:生成文件的权限不足。请联系技术支持。方法是点击页面左下方“技术支持”文字,即可通过电话、QQ、邮箱等方式反馈。");
}

猜你喜欢

转载自www.cnblogs.com/zgjin/p/9051018.html