- 浏览: 510083 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (156)
- xml (4)
- web前端 (24)
- jQuery (18)
- java (38)
- SQL (9)
- perl (2)
- OTRS (1)
- GWT (4)
- Linux (32)
- Maven (2)
- Spring (2)
- Oracle Win7 (1)
- css (8)
- eclipse (3)
- mysql (11)
- tomcat (5)
- git (4)
- javascript (22)
- font (1)
- android (1)
- log4j (1)
- email (1)
- sublime plugin (1)
- html (2)
- matches (1)
- php (3)
- apache (3)
- gd (1)
- docker (5)
- rails (1)
- RabbitMQ (1)
- Ubuntu (3)
- L2TP VPN (1)
- nodejs (1)
- oraclejet (1)
- ubutun (1)
- ntp (1)
- ngix (1)
- ssl (1)
- https (1)
- Linux,Debian (2)
- dpkg (1)
- pac (1)
- vi (1)
- vim (1)
- java,http (0)
- httpClient (0)
- shutter (1)
- shell (1)
- redmine (1)
最新评论
-
纵观全局:
配置之后,连接显示不是私密连接
keytool生成证书与Tomcat SSL配置 -
zhuchao_ko:
可以 伪造
java获得ip地址 -
longhua2003:
代码太乱了
java下载文件 -
tomhat:
ccx410 写道 安装gwt报错,unable to ret ...
GWT CellTable -
ccx410:
安装gwt报错,unable to retrieve osgi ...
GWT CellTable
/**
*
*/
package com.chinaops.web.ydgd.servlet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.chinaops.web.ydgd.entity.Customer;
import com.chinaops.web.ydgd.entity.Order;
import com.chinaops.web.ydgd.entity.Ticket;
import com.chinaops.web.ydgd.service.CustomerService;
import com.chinaops.web.ydgd.service.OrderService;
import com.chinaops.web.ydgd.service.TicketService;
import com.chinaops.web.ydgd.utils.Suite;
/**
* @author tomhat
* 2014年9月1日 上午9:34:38
*/
public class ExportExcelServlet extends HttpServlet {
private static final Log log = LogFactory.getLog(ExportExcelServlet.class);
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
TicketService ticketService = (TicketService) context.getBean("ticketService");
CustomerService customerService = (CustomerService) context.getBean("customerService");
OrderService orderService = (OrderService) context.getBean("orderService");
String targetfile = "D:/资源.xls";// 输出的excel文件名
String[] worksheet = { "共享云", "专享云", "云存储" };// 输出的excel文件工作表名
String[] title = { "云平台", "开通时间", "资源详情" };// excel工作表的标题
WritableWorkbook workbook;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String customerId = request.getParameter("customerId");
try {
Customer customer = customerService.getCustomerBycustomerId(customerId);
String osSys = System.getProperty("os.name");
// if (StringUtils.isNotEmpty(os) && os.startsWith("Windows"))
// return "f:" + File.separatorChar + "tuts" + File.separatorChar;
// else
// return File.separatorChar + "tuts" + File.separatorChar;
String path = request.getSession().getServletContext().getRealPath("/");
String filename = path + "/excel/" + customer.getCustomerName() + "-资源.xls";
OutputStream os = new FileOutputStream(filename);
workbook = Workbook.createWorkbook(os);
List<Ticket> ticketList = ticketService.getOpenTicketByCustomerId(customerId);
String ticketIdS = new String();
if (ticketList.size() > 0) {
for (Ticket ticket : ticketList) {
ticketIdS += "'" + ticket.getTicketId() + "',";
}
}
String ticketIds = "";
if (ticketIdS.indexOf(",") > 0) {
ticketIds = ticketIdS.substring(0, ticketIdS.length() - 1);
}
List<Order> productTypeList = new ArrayList<Order>();
List<Order> productList = new ArrayList<Order>();
if (!ticketIds.equals("") && ticketIds != null) {
productTypeList = orderService.getProductTypes(ticketIds);
}
if (productTypeList != null && productTypeList.size() > 0) {
for (int i = 0; i < productTypeList.size(); i++) {
WritableSheet sheet = workbook.createSheet(worksheet[i], i);
WritableFont wftitle = new WritableFont(WritableFont.TIMES, 25, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFtitle = new WritableCellFormat(wftitle);
wcfFtitle.setBackground(Colour.GRAY_25);
wcfFtitle.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 0, 2, 0);
sheet.setRowView(0, 600);
Label labeltitle = new Label(0, 0, "客户信息", wcfFtitle);
sheet.addCell(labeltitle);
WritableFont wfbase = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFbase = new WritableCellFormat(wfbase);
wcfFbase.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 1, 2, 1);
sheet.setRowView(1, 500);
Label labelbase = new Label(0, 1, "基本信息", wcfFbase);
sheet.addCell(labelbase);
WritableFont wfright = new WritableFont(WritableFont.TAHOMA, 12, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFright = new WritableCellFormat(wfright);
wcfFright.setAlignment(Alignment.RIGHT);
Label labelcustomerName = new Label(0, 2, "客户名称:", wcfFright);
sheet.addCell(labelcustomerName);
Label hangye = new Label(0, 3, "所属行业:", wcfFright);
sheet.addCell(hangye);
Label dizhi = new Label(0, 4, "地址:", wcfFright);
sheet.addCell(dizhi);
Label youbian = new Label(0, 5, "邮编:", wcfFright);
sheet.addCell(youbian);
WritableFont wfleft = new WritableFont(WritableFont.TAHOMA, 12, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfleft = new WritableCellFormat(wfleft);
wcfleft.setAlignment(Alignment.LEFT);
sheet.mergeCells(1, 2, 2, 2);
Label labelcustomerName1 = new Label(1, 2, customer.getCustomerName(), wcfleft);
sheet.addCell(labelcustomerName1);
sheet.mergeCells(1, 3, 2, 3);
Label hangye1 = new Label(1, 3, customer.getCategory(), wcfleft);
sheet.addCell(hangye1);
sheet.mergeCells(1, 4, 2, 4);
Label dizhi1 = new Label(1, 4, customer.getCustomerAddress(), wcfleft);
sheet.addCell(dizhi1);
sheet.mergeCells(1, 5, 2, 5);
Label youbian1 = new Label(1, 5, customer.getPostalCode(), wcfleft);
sheet.addCell(youbian1);
WritableFont wfcontact = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFcontact = new WritableCellFormat(wfcontact);
wcfFcontact.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 6, 2, 6);
sheet.setRowView(6, 500);
Label labelcontact = new Label(0, 6, "联系人", wcfFcontact);
sheet.addCell(labelcontact);
Label yewulianxiren = new Label(0, 7, "业务联系人:", wcfFright);
sheet.addCell(yewulianxiren);
Label yewuPhone = new Label(0, 8, "电话:", wcfFright);
sheet.addCell(yewuPhone);
Label yewuEmail = new Label(0, 9, "邮箱:", wcfFright);
sheet.addCell(yewuEmail);
Label jishulianxiren = new Label(0, 10, "技术联系人:", wcfFright);
sheet.addCell(jishulianxiren);
Label jishuPhone = new Label(0, 11, "电话:", wcfFright);
sheet.addCell(jishuPhone);
Label jishuEmail = new Label(0, 12, "邮箱:", wcfFright);
sheet.addCell(jishuEmail);
sheet.mergeCells(1, 7, 2, 7);
Label yewu = new Label(1, 7, customer.getB_contact(), wcfleft);
sheet.addCell(yewu);
sheet.mergeCells(1, 8, 2,;
Label ywPhone = new Label(1, 8, customer.getB_phone(), wcfleft);
sheet.addCell(ywPhone);
sheet.mergeCells(1, 9, 2, 9);
Label ywEmail = new Label(1, 9, customer.getB_email(), wcfleft);
sheet.addCell(ywEmail);
sheet.mergeCells(1, 10, 2, 10);
Label jishu = new Label(1, 10, customer.getT_contact(), wcfleft);
sheet.addCell(jishu);
sheet.mergeCells(1, 11, 2, 11);
Label jsPhone = new Label(1, 11, customer.getT_phone(), wcfleft);
sheet.addCell(jsPhone);
sheet.mergeCells(1, 12, 2, 12);
Label jsEmail = new Label(1, 12, customer.getT_email(), wcfleft);
sheet.addCell(jsEmail);
sheet.setRowView(2, 400);
sheet.setRowView(3, 400);
sheet.setRowView(4, 400);
sheet.setRowView(5, 400);
sheet.setRowView(7, 400);
sheet.setRowView(8, 400);
sheet.setRowView(9, 400);
sheet.setRowView(10, 400);
sheet.setRowView(11, 400);
sheet.setRowView(12, 400);
for (int j = 0; j < title.length; j++) {
WritableFont wf = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfF = new WritableCellFormat(wf);
wcfF.setBackground(Colour.GRAY_25);
wcfF.setAlignment(Alignment.CENTRE);
// Label(列号,行号 ,内容 )
Label label = new Label(j, 14, title[j], wcfF); // put
// the
// title
// in
sheet.addCell(label);
}
sheet.setColumnView(0, 15);
sheet.setColumnView(1, 20);
sheet.setColumnView(2, 50);
sheet.setRowView(14, 600);
productList = orderService.getOrderByProductType(ticketIds, productTypeList.get(i).getProductType());
if (productList != null && productList.size() > 0) {
int s = 5;
for (int k = 0; k < productList.size(); k++) {
Order order = productList.get(k);
sheet.setRowView(s * k + 14 + 1, 500);
sheet.setRowView(s * k + 14 + 2, 500);
sheet.setRowView(s * k + 14 + 3, 500);
sheet.setRowView(s * k + 14 + 4, 500);
sheet.setRowView(s * k + 14 + 5, 500);
sheet.mergeCells(0, s * k + 14 + 1, 0, s * k + 14 + 5);
sheet.mergeCells(1, s * k + 14 + 1, 1, s * k + 14 + 5);
WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN);
jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);
wchB.setAlignment(jxl.format.Alignment.CENTRE);
wchB.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wchB.setBorder(Border.ALL, BorderLineStyle.THIN, jxl.format.Colour.GRAY_25);
Label CloudPlatform = new jxl.write.Label(0, s * k + 14 + 1, order.getCloudPlatform(), wchB);
sheet.addCell(CloudPlatform);
Label OpenTime = new jxl.write.Label(1, s * k + 14 + 1, order.getOpenTime(), wchB);
sheet.addCell(OpenTime);
WritableFont wfbleft = new jxl.write.WritableFont(WritableFont.TAHOMA, 10, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE);
jxl.write.WritableCellFormat wchleft = new jxl.write.WritableCellFormat(wfbleft);
wchleft.setAlignment(jxl.format.Alignment.LEFT);
wchleft.setBorder(Border.ALL, BorderLineStyle.THIN, jxl.format.Colour.GRAY_25);
if (order.getProductType().equals("share")) {
Label ecu = new jxl.write.Label(2, s * k + 14 + 1, "ECU:" + Suite.suiteShare(order.getSuite())[0] + "个\n\t 负载均衡:"
+ ((order.getElb() != null && !order.getElb().equals("")) ? order.getElb() : 0) + "个", wchleft);
sheet.addCell(ecu);
} else if (order.getProductType().equals("exclusive")) {
Label ecu = new jxl.write.Label(2, s * k + 14 + 1, "ECU:" + Suite.suiteExclusive(order.getSuite())[0] + "个\n\t 负载均衡:"
+ ((order.getElb() != null && !order.getElb().equals("")) ? order.getElb() : '0') + "个", wchleft);
sheet.addCell(ecu);
}// 存储:200 GB 主机保护:0 个
Label volume = new jxl.write.Label(2, s * k + 14 + 2, "存储:" + (Integer.parseInt(order.getStorage()) + Integer.parseInt(Suite.suiteShare(order.getSuite())[2]))
+ "GB [含赠送存储:" + Suite.suiteShare(order.getSuite())[2] + "GB]\t 主机保护:" + ((!order.getHa().equals("") || order.getHa() != null) ? order.getHa() : 0) + "个", wchleft);
sheet.addCell(volume);
// 快照:200 GB 防火墙:0 个
Label snapshot = new jxl.write.Label(2, s * k + 14 + 3, "快照:" + (order.getSnapshot()) + "GB\n\t 防火墙:"
+ ((!order.getSecuritys().equals("") && order.getSecuritys() != null) ? order.getSecuritys() : 0) + "个", wchleft);
sheet.addCell(snapshot);
// 带宽:0 M 秘钥:0 个
Label bankwidth = new jxl.write.Label(2, s * k + 14 + 4, "带宽:" + (order.getBandwidth()) + "M \n\t 密钥:"
+ ((!order.getKeypairs().equals("") && order.getKeypairs() != null) ? order.getKeypairs() : 0) + "个", wchleft);
sheet.addCell(bankwidth);
// IP总数:0 个
Label ipCount = new jxl.write.Label(2, s * k + 14 + 5, "IP:" + (order.getIpCount()) + "个\n\t", wchleft);
sheet.addCell(ipCount);
}
}
}
}
workbook.write();
workbook.close();
// 先建立一个文件读取流去读取这个临时excel文件
FileInputStream fs = null;
try {
fs = new FileInputStream(filename);
} catch (FileNotFoundException e) {
log.error("生成excel错误! " + filename + " 不存在!", e);
return;
}
// 设置响应头和保存文件名
// 这个一定要设定,告诉浏览器这次请求是一个下载的数据流
final String userAgent = request.getHeader("USER-AGENT");
response.setContentType("application/vnd.ms-excel");
String excelName = "";
try {
// 这边的 "客户名称-资源.xls" 替换成你自己要显示给用户的文件名
String fileName2 = customer.getCustomerName() + "-资源.xls";
if (StringUtils.contains(userAgent, "MSIE")) {// IE浏览器
excelName = URLEncoder.encode(fileName2, "UTF8");
} else if (StringUtils.contains(userAgent, "Mozilla")) {// google,火狐浏览器
excelName = new String(fileName2.getBytes(), "ISO8859-1");
} else {
excelName = URLEncoder.encode(fileName2, "UTF8");// 其他浏览器
}
} catch (UnsupportedEncodingException e1) {
log.error("转换excel名称编码错误!", e1);
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + excelName + "\"");
log.debug(excelName);
// 写出流信息
int b = 0;
try {
// 这里的 response 就是你 servlet 的那个传参进来的 response
PrintWriter out = response.getWriter();
while ((b = fs.read()) != -1) {
out.write(b);
}
fs.close();
out.close();
log.debug(excelName + " - " + new Date().toString() + "文件下载完毕.");
} catch (Exception e) {
log.error(excelName + " - " + new Date().toString() + " 下载文件失败!.", e);
}
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
}
*
*/
package com.chinaops.web.ydgd.servlet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.chinaops.web.ydgd.entity.Customer;
import com.chinaops.web.ydgd.entity.Order;
import com.chinaops.web.ydgd.entity.Ticket;
import com.chinaops.web.ydgd.service.CustomerService;
import com.chinaops.web.ydgd.service.OrderService;
import com.chinaops.web.ydgd.service.TicketService;
import com.chinaops.web.ydgd.utils.Suite;
/**
* @author tomhat
* 2014年9月1日 上午9:34:38
*/
public class ExportExcelServlet extends HttpServlet {
private static final Log log = LogFactory.getLog(ExportExcelServlet.class);
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
TicketService ticketService = (TicketService) context.getBean("ticketService");
CustomerService customerService = (CustomerService) context.getBean("customerService");
OrderService orderService = (OrderService) context.getBean("orderService");
String targetfile = "D:/资源.xls";// 输出的excel文件名
String[] worksheet = { "共享云", "专享云", "云存储" };// 输出的excel文件工作表名
String[] title = { "云平台", "开通时间", "资源详情" };// excel工作表的标题
WritableWorkbook workbook;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String customerId = request.getParameter("customerId");
try {
Customer customer = customerService.getCustomerBycustomerId(customerId);
String osSys = System.getProperty("os.name");
// if (StringUtils.isNotEmpty(os) && os.startsWith("Windows"))
// return "f:" + File.separatorChar + "tuts" + File.separatorChar;
// else
// return File.separatorChar + "tuts" + File.separatorChar;
String path = request.getSession().getServletContext().getRealPath("/");
String filename = path + "/excel/" + customer.getCustomerName() + "-资源.xls";
OutputStream os = new FileOutputStream(filename);
workbook = Workbook.createWorkbook(os);
List<Ticket> ticketList = ticketService.getOpenTicketByCustomerId(customerId);
String ticketIdS = new String();
if (ticketList.size() > 0) {
for (Ticket ticket : ticketList) {
ticketIdS += "'" + ticket.getTicketId() + "',";
}
}
String ticketIds = "";
if (ticketIdS.indexOf(",") > 0) {
ticketIds = ticketIdS.substring(0, ticketIdS.length() - 1);
}
List<Order> productTypeList = new ArrayList<Order>();
List<Order> productList = new ArrayList<Order>();
if (!ticketIds.equals("") && ticketIds != null) {
productTypeList = orderService.getProductTypes(ticketIds);
}
if (productTypeList != null && productTypeList.size() > 0) {
for (int i = 0; i < productTypeList.size(); i++) {
WritableSheet sheet = workbook.createSheet(worksheet[i], i);
WritableFont wftitle = new WritableFont(WritableFont.TIMES, 25, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFtitle = new WritableCellFormat(wftitle);
wcfFtitle.setBackground(Colour.GRAY_25);
wcfFtitle.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 0, 2, 0);
sheet.setRowView(0, 600);
Label labeltitle = new Label(0, 0, "客户信息", wcfFtitle);
sheet.addCell(labeltitle);
WritableFont wfbase = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFbase = new WritableCellFormat(wfbase);
wcfFbase.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 1, 2, 1);
sheet.setRowView(1, 500);
Label labelbase = new Label(0, 1, "基本信息", wcfFbase);
sheet.addCell(labelbase);
WritableFont wfright = new WritableFont(WritableFont.TAHOMA, 12, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFright = new WritableCellFormat(wfright);
wcfFright.setAlignment(Alignment.RIGHT);
Label labelcustomerName = new Label(0, 2, "客户名称:", wcfFright);
sheet.addCell(labelcustomerName);
Label hangye = new Label(0, 3, "所属行业:", wcfFright);
sheet.addCell(hangye);
Label dizhi = new Label(0, 4, "地址:", wcfFright);
sheet.addCell(dizhi);
Label youbian = new Label(0, 5, "邮编:", wcfFright);
sheet.addCell(youbian);
WritableFont wfleft = new WritableFont(WritableFont.TAHOMA, 12, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfleft = new WritableCellFormat(wfleft);
wcfleft.setAlignment(Alignment.LEFT);
sheet.mergeCells(1, 2, 2, 2);
Label labelcustomerName1 = new Label(1, 2, customer.getCustomerName(), wcfleft);
sheet.addCell(labelcustomerName1);
sheet.mergeCells(1, 3, 2, 3);
Label hangye1 = new Label(1, 3, customer.getCategory(), wcfleft);
sheet.addCell(hangye1);
sheet.mergeCells(1, 4, 2, 4);
Label dizhi1 = new Label(1, 4, customer.getCustomerAddress(), wcfleft);
sheet.addCell(dizhi1);
sheet.mergeCells(1, 5, 2, 5);
Label youbian1 = new Label(1, 5, customer.getPostalCode(), wcfleft);
sheet.addCell(youbian1);
WritableFont wfcontact = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfFcontact = new WritableCellFormat(wfcontact);
wcfFcontact.setAlignment(Alignment.LEFT);
sheet.mergeCells(0, 6, 2, 6);
sheet.setRowView(6, 500);
Label labelcontact = new Label(0, 6, "联系人", wcfFcontact);
sheet.addCell(labelcontact);
Label yewulianxiren = new Label(0, 7, "业务联系人:", wcfFright);
sheet.addCell(yewulianxiren);
Label yewuPhone = new Label(0, 8, "电话:", wcfFright);
sheet.addCell(yewuPhone);
Label yewuEmail = new Label(0, 9, "邮箱:", wcfFright);
sheet.addCell(yewuEmail);
Label jishulianxiren = new Label(0, 10, "技术联系人:", wcfFright);
sheet.addCell(jishulianxiren);
Label jishuPhone = new Label(0, 11, "电话:", wcfFright);
sheet.addCell(jishuPhone);
Label jishuEmail = new Label(0, 12, "邮箱:", wcfFright);
sheet.addCell(jishuEmail);
sheet.mergeCells(1, 7, 2, 7);
Label yewu = new Label(1, 7, customer.getB_contact(), wcfleft);
sheet.addCell(yewu);
sheet.mergeCells(1, 8, 2,;
Label ywPhone = new Label(1, 8, customer.getB_phone(), wcfleft);
sheet.addCell(ywPhone);
sheet.mergeCells(1, 9, 2, 9);
Label ywEmail = new Label(1, 9, customer.getB_email(), wcfleft);
sheet.addCell(ywEmail);
sheet.mergeCells(1, 10, 2, 10);
Label jishu = new Label(1, 10, customer.getT_contact(), wcfleft);
sheet.addCell(jishu);
sheet.mergeCells(1, 11, 2, 11);
Label jsPhone = new Label(1, 11, customer.getT_phone(), wcfleft);
sheet.addCell(jsPhone);
sheet.mergeCells(1, 12, 2, 12);
Label jsEmail = new Label(1, 12, customer.getT_email(), wcfleft);
sheet.addCell(jsEmail);
sheet.setRowView(2, 400);
sheet.setRowView(3, 400);
sheet.setRowView(4, 400);
sheet.setRowView(5, 400);
sheet.setRowView(7, 400);
sheet.setRowView(8, 400);
sheet.setRowView(9, 400);
sheet.setRowView(10, 400);
sheet.setRowView(11, 400);
sheet.setRowView(12, 400);
for (int j = 0; j < title.length; j++) {
WritableFont wf = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat wcfF = new WritableCellFormat(wf);
wcfF.setBackground(Colour.GRAY_25);
wcfF.setAlignment(Alignment.CENTRE);
// Label(列号,行号 ,内容 )
Label label = new Label(j, 14, title[j], wcfF); // put
// the
// title
// in
sheet.addCell(label);
}
sheet.setColumnView(0, 15);
sheet.setColumnView(1, 20);
sheet.setColumnView(2, 50);
sheet.setRowView(14, 600);
productList = orderService.getOrderByProductType(ticketIds, productTypeList.get(i).getProductType());
if (productList != null && productList.size() > 0) {
int s = 5;
for (int k = 0; k < productList.size(); k++) {
Order order = productList.get(k);
sheet.setRowView(s * k + 14 + 1, 500);
sheet.setRowView(s * k + 14 + 2, 500);
sheet.setRowView(s * k + 14 + 3, 500);
sheet.setRowView(s * k + 14 + 4, 500);
sheet.setRowView(s * k + 14 + 5, 500);
sheet.mergeCells(0, s * k + 14 + 1, 0, s * k + 14 + 5);
sheet.mergeCells(1, s * k + 14 + 1, 1, s * k + 14 + 5);
WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN);
jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);
wchB.setAlignment(jxl.format.Alignment.CENTRE);
wchB.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
wchB.setBorder(Border.ALL, BorderLineStyle.THIN, jxl.format.Colour.GRAY_25);
Label CloudPlatform = new jxl.write.Label(0, s * k + 14 + 1, order.getCloudPlatform(), wchB);
sheet.addCell(CloudPlatform);
Label OpenTime = new jxl.write.Label(1, s * k + 14 + 1, order.getOpenTime(), wchB);
sheet.addCell(OpenTime);
WritableFont wfbleft = new jxl.write.WritableFont(WritableFont.TAHOMA, 10, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE);
jxl.write.WritableCellFormat wchleft = new jxl.write.WritableCellFormat(wfbleft);
wchleft.setAlignment(jxl.format.Alignment.LEFT);
wchleft.setBorder(Border.ALL, BorderLineStyle.THIN, jxl.format.Colour.GRAY_25);
if (order.getProductType().equals("share")) {
Label ecu = new jxl.write.Label(2, s * k + 14 + 1, "ECU:" + Suite.suiteShare(order.getSuite())[0] + "个\n\t 负载均衡:"
+ ((order.getElb() != null && !order.getElb().equals("")) ? order.getElb() : 0) + "个", wchleft);
sheet.addCell(ecu);
} else if (order.getProductType().equals("exclusive")) {
Label ecu = new jxl.write.Label(2, s * k + 14 + 1, "ECU:" + Suite.suiteExclusive(order.getSuite())[0] + "个\n\t 负载均衡:"
+ ((order.getElb() != null && !order.getElb().equals("")) ? order.getElb() : '0') + "个", wchleft);
sheet.addCell(ecu);
}// 存储:200 GB 主机保护:0 个
Label volume = new jxl.write.Label(2, s * k + 14 + 2, "存储:" + (Integer.parseInt(order.getStorage()) + Integer.parseInt(Suite.suiteShare(order.getSuite())[2]))
+ "GB [含赠送存储:" + Suite.suiteShare(order.getSuite())[2] + "GB]\t 主机保护:" + ((!order.getHa().equals("") || order.getHa() != null) ? order.getHa() : 0) + "个", wchleft);
sheet.addCell(volume);
// 快照:200 GB 防火墙:0 个
Label snapshot = new jxl.write.Label(2, s * k + 14 + 3, "快照:" + (order.getSnapshot()) + "GB\n\t 防火墙:"
+ ((!order.getSecuritys().equals("") && order.getSecuritys() != null) ? order.getSecuritys() : 0) + "个", wchleft);
sheet.addCell(snapshot);
// 带宽:0 M 秘钥:0 个
Label bankwidth = new jxl.write.Label(2, s * k + 14 + 4, "带宽:" + (order.getBandwidth()) + "M \n\t 密钥:"
+ ((!order.getKeypairs().equals("") && order.getKeypairs() != null) ? order.getKeypairs() : 0) + "个", wchleft);
sheet.addCell(bankwidth);
// IP总数:0 个
Label ipCount = new jxl.write.Label(2, s * k + 14 + 5, "IP:" + (order.getIpCount()) + "个\n\t", wchleft);
sheet.addCell(ipCount);
}
}
}
}
workbook.write();
workbook.close();
// 先建立一个文件读取流去读取这个临时excel文件
FileInputStream fs = null;
try {
fs = new FileInputStream(filename);
} catch (FileNotFoundException e) {
log.error("生成excel错误! " + filename + " 不存在!", e);
return;
}
// 设置响应头和保存文件名
// 这个一定要设定,告诉浏览器这次请求是一个下载的数据流
final String userAgent = request.getHeader("USER-AGENT");
response.setContentType("application/vnd.ms-excel");
String excelName = "";
try {
// 这边的 "客户名称-资源.xls" 替换成你自己要显示给用户的文件名
String fileName2 = customer.getCustomerName() + "-资源.xls";
if (StringUtils.contains(userAgent, "MSIE")) {// IE浏览器
excelName = URLEncoder.encode(fileName2, "UTF8");
} else if (StringUtils.contains(userAgent, "Mozilla")) {// google,火狐浏览器
excelName = new String(fileName2.getBytes(), "ISO8859-1");
} else {
excelName = URLEncoder.encode(fileName2, "UTF8");// 其他浏览器
}
} catch (UnsupportedEncodingException e1) {
log.error("转换excel名称编码错误!", e1);
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + excelName + "\"");
log.debug(excelName);
// 写出流信息
int b = 0;
try {
// 这里的 response 就是你 servlet 的那个传参进来的 response
PrintWriter out = response.getWriter();
while ((b = fs.read()) != -1) {
out.write(b);
}
fs.close();
out.close();
log.debug(excelName + " - " + new Date().toString() + "文件下载完毕.");
} catch (Exception e) {
log.error(excelName + " - " + new Date().toString() + " 下载文件失败!.", e);
}
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
}
发表评论
-
Apache HTTPClient 忽略证书
2019-01-25 15:03 1613/** * httpclient4.5.2版 * ... -
HTTP 返回码
2019-01-24 15:28 427HTTP1.1新增了五种请求方法:OPTIONS、PUT、PA ... -
Java SizeToHuman 大小转换为mb kb tb等
2017-08-21 15:12 1654public class TestSizeToHuman ... -
java常规格式化说明
2016-01-20 17:27 1384转 换 符说 明 ... -
java验证是否包含特殊字符/\:*?"<>
2016-01-05 15:25 8767public class MatchTest { ... -
JSP和JSTL获取服务器参数
2015-09-11 13:57 1200<%@ page language="java ... -
java计算时间差比较时间大小
2015-05-20 10:53 1121今天需要比较时间在网上找到然后写下: 比如:现在是:200 ... -
java发邮件
2014-11-19 15:37 1237一、 import java.util.Date; im ... -
java log4j.properties
2014-11-18 09:30 922log4j.properties配置文件如下: log4j ... -
java获得ip地址
2014-11-17 18:18 1330public String getIpAddr(Htt ... -
java下载文件
2014-11-07 10:57 1100// 文件名称中文乱码new String(filename. ... -
Android中RelativeLayout各个属性的含义
2014-10-11 15:06 877android:layout_above="@id ... -
Http发送请求
2014-09-17 15:01 902package wzh.Http; import j ... -
Spring MVC @RequestBody接收JSON报HTTP 415/400问题的解决
2014-08-27 13:06 3811Ajax请求传@RequestBody(接收JSON)参数时, ... -
动态创建和修改Spring的bean配置文件
2014-08-06 18:23 43871、如果只是创建一个XML文件,那么只需要导入dom4j-1. ... -
request获取各种路径
2014-08-06 17:06 951从request获取各种路径总结 request.getRea ... -
Linux下设置开机自启动tomcat
2014-07-23 11:51 1955centos7 设置tomcat开机自启动 在tomcat/ ... -
Linux 设置环境变量JAVA_HOME ,鼠标右键打开终端,修改hostname
2014-07-03 14:21 1774一、ubuntu永久修改主机名 1、查看主机名 在Ubunt ... -
keytool生成证书与Tomcat SSL配置
2014-07-02 17:03 18175一、Keytool介绍 Keytool是一个Java数据证书 ... -
Map的几种循环方式
2013-09-12 15:38 1559for(String dataKey : paraMap.ke ...
相关推荐
总之,Kettle循环导出数据到Excel是一种实用的数据处理方法,尤其适合处理大型数据集。它提供了强大的工具和灵活性,能够满足各种ETL需求,而不仅仅是数据导出。通过熟练掌握Kettle,IT专业人士能够更高效地管理和...
C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文中的代码直接就可用,其中部分代码参考其他的代码并做了修改,抛砖引玉,...
### SQL Server 定时导出数据到Excel及其他格式 #### 概述 在数据库管理和维护过程中,有时我们需要定期将数据库中的数据导出为其他格式,如Excel、Word或Access等,便于进一步的数据分析或者报告制作。本文将详细...
在Java编程中,导出数据到Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据交换等场景下。这里我们将深入探讨如何使用Java实现从数据库中查询数据并将其以多级表头的形式导入到Excel文件中。 首先,...
C# datatable直接导出数据到Excel,(数据量百万级只需3秒)
Delphi 高效率导出数据到 Excel Delphi 是一个功能强大的开发工具,可以用于开发各种类型的应用程序,而 Excel 是一个非常popular的电子表格软件,经常用于数据分析和处理。在实际开发中,我们经常需要将数据从 ...
1. **C#导出数据到Excel的基本原理** - 利用C#,我们可以借助Microsoft Office Interop库(如Microsoft.Office.Interop.Excel)直接操作Excel对象模型,创建新的Excel工作簿,填充数据,然后保存为文件。 - 另一种...
要实现从MySQL数据库导出数据到Excel,首先我们需要建立一个到MySQL服务器的连接,然后执行SQL查询以获取需要的数据。下面是一个简化的流程: 1. **连接MySQL**:使用`mysqli_connect()`或`PDO::__construct()`函数...
分享php导出数据到excel表,大家共同学习学习!
php的一个很经典的程序例子,导出数据到excel中。
Java导出数据到Excel文件中,支持多页签形式,如通过Java导出一个名为“各部门人员列表”,然后在文件中有三个页签,分别为“研发部”、“综合部”、“财务部”。其中这三个页签里面的数据就是通过Java导出到Excel...
JavaScript导出数据到Excel! 值得下载看看!资源免费,大家分享!!
"VB Listview导出数据到EXCEL"这个主题就是关于如何将ListView控件中的数据转换并保存到Microsoft Excel工作表中,以便于数据分析、报表生成或者进一步处理。ListView控件在VB中是一种常用的数据展示方式,它允许...
根据给定的文件标题、描述、标签以及部分内容,我们可以总结并深入探讨Delphi导出数据到Excel的方法。在IT行业中,Delphi作为一种流行的编程语言,常被用于开发各种应用程序,其中包括与外部数据交互的功能,如将...
### VB代码实现从数据库快速导出数据到EXCEL的知识点详解 #### 一、核心概念与技术背景 在企业级应用开发中,数据处理与报表生成是常见的需求之一。使用VB(Visual Basic)进行编程,可以高效地实现从数据库提取...
在本场景中,我们讨论的是如何利用Kettle来实现一个特定的需求:循环导出数据到Excel并生成多个sheet页。 首先,我们需要理解这个需求的背景。在数据分析或报告生成中,有时需要根据不同的分类将数据分隔开,以便于...
使用NPOI导出数据到Excel的优点在于它无需安装Excel,纯代码操作即可完成,而且支持各种复杂的Excel格式设置,如单元格样式、公式等。以下是一个简单的NPOI导出数据到Excel的示例: ```csharp using NPOI.HSSF....