📄 downtableaction.java
字号:
/* 创建日期:Dec 18, 2006
* 作 者:朱 闰
* 公 司:安徽通途信息技术有限公司
*/
package com.tongtu.Action.planManage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.tongtu.Action.TopBaseAction;
import com.tongtu.util.CurrentUser;
import com.tongtu.util.PlanDetail;
import com.tongtu.util.TotalDetail;
import com.tongtu.util.UserInfo;
public class DownTableAction extends TopBaseAction
{
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws IOException {
ActionErrors errors = new ActionErrors();
String tableId = httpServletRequest.getParameter("table_id");
String tabletype = httpServletRequest.getParameter("tableType");
int tableType = 0;
if (tabletype != null) tableType = Integer.parseInt(tabletype);
HttpSession session = httpServletRequest.getSession();
UserInfo user = (UserInfo) session.getAttribute("curuser");
String cityValue = user.getCity();
String countyValue = user.getCounty();
String code = "";
if (cityValue.equals("340000000000") || cityValue.equals("0"))
code = "34"; //省级用户及超级用户
else if (!cityValue.equals("0") && countyValue.equals("0"))
code = cityValue.substring(0,4); //市级用户
else code = countyValue.substring(0,6); //县区级用户
CurrentUser cu = new CurrentUser();
ArrayList tableContent = new ArrayList();
httpServletRequest.getInputStream().close();
OutputStream os = httpServletResponse.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("Sheet1", 0);
WritableFont wfc = new jxl.write.WritableFont(WritableFont.createFont("宋体"), 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
httpServletResponse.setContentType("application/x-msdownload");
httpServletResponse.setHeader("Content-Disposition", "attachment; filename=\"" + tableId + ".xls\"");
//导出表格
ArrayList row = new ArrayList(); //表格头行
if (tableType == 1){
row.add("路线名称");
row.add("计划类型");
row.add("市名");
row.add("县区名");
row.add("行政村名称");
row.add("行政村类型");
row.add("乡镇名称");
row.add("建设里程(公里)");
row.add("路基宽度(米)");
row.add("路面宽度(米)");
row.add("路面类型");
row.add("投资金额(万元)");
row.add("省补资金(万元)");
row.add("开工时间");
row.add("完工时间");
}
if (tableType == 2){
row.add("市名");
row.add("县区名");
row.add("乡镇名称");
row.add("乡镇个数");
row.add("行政村个数");
row.add("建设里程(公里)");
row.add("计划总投资(万元)");
row.add("中央投资(万元)");
row.add("省市区自筹(万元)");
row.add("省补资金(万元)");
}
if (tableType == 3){
row.add("行政单位");
row.add("沟通行政村");
row.add("");
row.add("");
row.add("");
row.add("");
row.add("非沟通行政村");
row.add("");
row.add("");
row.add("");
row.add("");
row.add("县道土路");
row.add("");
row.add("");
row.add("");
row.add("");
row.add("县道砂石路");
row.add("");
row.add("");
row.add("");
row.add("");
tableContent.add(row);
row = new ArrayList();
row.add("");
row.add("建设里程(公里)");
row.add("计划总投资(万元)");
row.add("上级补助资金(万元)");
row.add("中央投资(万元");
row.add("省市区自筹(万元");
row.add("建设里程(公里)");
row.add("计划总投资(万元)");
row.add("上级补助资金(万元)");
row.add("中央投资(万元");
row.add("省市区自筹(万元");
row.add("建设里程(公里)");
row.add("计划总投资(万元)");
row.add("上级补助资金(万元)");
row.add("中央投资(万元");
row.add("省市区自筹(万元");
row.add("建设里程(公里)");
row.add("计划总投资(万元)");
row.add("上级补助资金(万元)");
row.add("中央投资(万元");
row.add("省市区自筹(万元");
}
tableContent.add(row);
List planList = (List)session.getAttribute("planList");
if (planList == null){
planList = getPlanHelper().getPlanListByCode(code,2); //根据编码取计划列表
System.out.println("=====planSize=======" + planList.size());
}
if (tableType == 3){
for (int i = 0; planList!= null && i < planList.size();i++){
List tempList = (List)planList.get(i);
String name = (String)tempList.get(0);
TotalDetail ti = (TotalDetail)tempList.get(1);
row = new ArrayList(); //表格内容行
row.add(name);
row.add(cu.getRound(ti.getJhlc1(),1)+"");
row.add(cu.getRound(ti.getJhtze1(),3)+"");
row.add(cu.getRound(ti.getJhsbe1(),3)+"");
row.add(cu.getRound(ti.getJhzytz1(),3)+"");
row.add(cu.getRound(ti.getJhzczj1(),3)+"");
row.add(cu.getRound(ti.getJhlc2(),1)+"");
row.add(cu.getRound(ti.getJhtze2(),3)+"");
row.add(cu.getRound(ti.getJhsbe2(),3)+"");
row.add(cu.getRound(ti.getJhzytz2(),3)+"");
row.add(cu.getRound(ti.getJhzczj2(),3)+"");
row.add(cu.getRound(ti.getJhlc3(),1)+"");
row.add(cu.getRound(ti.getJhtze3(),3)+"");
row.add(cu.getRound(ti.getJhsbe3(),3)+"");
row.add(cu.getRound(ti.getJhzytz3(),3)+"");
row.add(cu.getRound(ti.getJhzczj3(),3)+"");
row.add(cu.getRound(ti.getJhlc4(),1)+"");
row.add(cu.getRound(ti.getJhtze4(),3)+"");
row.add(cu.getRound(ti.getJhsbe4(),3)+"");
row.add(cu.getRound(ti.getJhzytz4(),3)+"");
row.add(cu.getRound(ti.getJhzczj4(),3)+"");
tableContent.add(row);
}
}else {
try {
String planType = "";
String villageType = "";
int count = planList.size();
for (int j = 0; j < row.size(); j++) {
Label labelC = new jxl.write.Label(j, 0, (String) row.get(j), wcfFC);
ws.addCell(labelC);
}
for (int i = 0; planList!= null && i < count;i++){
PlanDetail plan = (PlanDetail)planList.get(i);
planType = "";
villageType = "";
//1沟通建制村,2非沟通建制村,3县道土路,4县道砂石路
if (plan.getPlanType() == 1) planType = "沟通建制村";
if (plan.getPlanType() == 2) planType = "非沟通建制村";
if (plan.getPlanType() == 3) planType = "县道土路";
if (plan.getPlanType() == 4) planType = "县道砂石路";
String [] viStr = plan.getVillageType().split(";");
for (int j = 0; viStr != null && j < viStr.length;j++){
if (viStr[j].equals("1") ) villageType += " 爱滋病村 ;";
if (viStr[j].equals("2") ) villageType += " 民蔟村 ;";
if (viStr[j].equals("3") ) villageType += " 干部挂职村 ;";
if (viStr[j].equals("4") ) villageType += " 千村百镇示范村 ;";
}
if (villageType.length() > 0)
villageType = villageType.substring(0,villageType.length()-2);
String roadType = "";
if (plan.getRoadSurfaceType() == 1) roadType = "沥青混凝土路面 ";
if (plan.getRoadSurfaceType() == 2) roadType = "水泥混凝土路面";
if (plan.getRoadSurfaceType() == 3) roadType = "简易铺装路面";
if (plan.getRoadSurfaceType() == 4) roadType = "砂石路面";
if (plan.getRoadSurfaceType() == 5) roadType = "石质路面";
if (plan.getRoadSurfaceType() == 6) roadType = "渣石路面";
if (plan.getRoadSurfaceType() == 7) roadType = "砖铺路面";
if (plan.getRoadSurfaceType() == 8) roadType = "无路面";
row = new ArrayList(); //表格内容行
if (tableType == 1){
row.add(plan.getRoadName());
row.add(planType);
row.add(plan.getCityName());
row.add(plan.getCountyName());
row.add(plan.getVillageName());
row.add(villageType);
row.add(plan.getTownName());
row.add(plan.getMilemeter() + "");
row.add(plan.getRoadbedWidth() + "");
row.add(plan.getRoadSurfaceWidth() + "");
row.add(roadType);
row.add(plan.getInvest() + "");
row.add(plan.getProvinceSubsidy()+"");
row.add(plan.getStartTime());
row.add(plan.getEndTime());
}
if (tableType == 2){
row.add(plan.getCityName());
row.add(plan.getCountyName());
row.add(plan.getTownName());
row.add(plan.getTownCout() + "");
row.add(plan.getVillageCount() + "");
row.add(cu.getRound(plan.getMilemeter(),1)+"");
row.add(cu.getRound(plan.getInvest(),3) + "");
row.add(cu.getRound(plan.getZytz(),3)+"");
row.add(cu.getRound(plan.getSsqzc(),3)+"");
row.add(cu.getRound(plan.getProvinceSubsidy(),3)+"");
}
for (int j = 0; j < row.size(); j++) {
Label labelC = new jxl.write.Label(j, i+1, (String) row.get(j), wcfFC);
ws.addCell(labelC);
}
// tableContent.add(row);
}
wwb.write();
// 关闭Excel工作薄对象
wwb.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (tableType == 3){
try {
for (int i = 0; i < tableContent.size(); i++) {
ArrayList row1 = (ArrayList) tableContent.get(i);
for (int j = 0; j < row1.size(); j++) {
Label labelC = new jxl.write.Label(j, i, (String) row1.get(j), wcfFC);
ws.addCell(labelC);
}
}
// 写入Exel工作表
wwb.write();
// 关闭Excel工作薄对象
wwb.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return actionMapping.findForward("refresh");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -