import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
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.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.yourcompany.struts.form.SportForm;
public class CreateXlsUtil {
public static void method(HttpServletRequest request)
throws ServletException, IOException {
try {
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet("SportSheet");
List list;
try {
list = (List) request.getSession().getAttribute("sportlist");
Iterator ite = list.iterator();
int i = 0;
HSSFRow row = sheet.createRow((short) i);
// 创建单元格
HSSFCell cell1 = row.createCell((short) 0);
cell1.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell2 = row.createCell((short) 1);
cell2.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell3 = row.createCell((short) 2);
cell3.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell4 = row.createCell((short) 3);
cell4.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell5 = row.createCell((short) 4);
cell5.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell6 = row.createCell((short) 5);
cell6.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell7 = row.createCell((short) 6);
cell7.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell8 = row.createCell((short) 7);
cell8.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
// 输入内容
cell1.setCellValue("工作或日常生活中(8小时)坐着的时间");
cell2.setCellValue("近距离(3公里以内)外出办事,您习惯的方式是");
cell3.setCellValue("五楼以下您是否爬楼梯?");
cell4.setCellValue("您是否从事家务劳动?");
cell5.setCellValue("您平均每周锻炼次数");
cell6.setCellValue("您平均每次锻炼时间");
cell7.setCellValue("您每天步行的时间");
cell8.setCellValue("您通常选择什么项目进行锻炼?");
while (ite.hasNext()) {
i++;
// 创建行
HSSFRow rows = sheet.createRow((short) i);
// 创建单元格
HSSFCell cell1s = rows.createCell((short) 0);
cell1s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell2s = rows.createCell((short) 1);
cell2s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell3s = rows.createCell((short) 2);
cell3s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell4s = rows.createCell((short) 3);
cell4s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell5s = rows.createCell((short) 4);
cell5s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell6s = rows.createCell((short) 5);
cell6s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell7s = rows.createCell((short) 6);
cell7s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
HSSFCell cell8s = rows.createCell((short) 7);
cell8s.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
SportForm sp = (SportForm) ite.next();
// 输入内容
cell1s.setCellValue(sp.getSeattime());
cell2s.setCellValue(sp.getHabit());
cell3s.setCellValue(sp.getClimb());
cell4s.setCellValue(sp.getHouswork());
cell5s.setCellValue(sp.getExertime());
cell6s.setCellValue(sp.getExerhour());
cell7s.setCellValue(sp.getWalktime());
cell8s.setCellValue(sp.getSportname());
}
} catch (Exception e) {
e.printStackTrace();
}
FileOutputStream fOut = new FileOutputStream("D:\\website.xls");
// 把相应的Excel工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭流
fOut.close();
} catch (Exception e) {
System.out.println("已运行 xlCreate() : " + e);
}
}
public static void downExcel(OutputStream ops, List list) {
/** 输出的excel文件工作表名 */
String worksheet = "运动信息导出处理";
/** excel工作表的标题 */
String[] title = { "工作或日常生活中(8小时)坐着的时间", "近距离(3公里以内)外出办事,您习惯的方式是", "五楼以下您是否爬楼梯?", "您是否从事家务劳动?", "您平均每周锻炼次数", "您平均每次锻炼时间",
"您每天步行的时间", "您通常选择什么项目进行锻炼?" };
WritableWorkbook workbook;
try {
workbook = Workbook.createWorkbook(ops);
/** 添加第一个工作表 */
WritableSheet sheet = workbook.createSheet(worksheet, 0);
Label label;
/** 标题栏格式设置 */
/** 字体 大小 颜色*/
WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,
11, WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE, Colour.BLUE);
WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
/** 单元格居中 */
wcfF.setAlignment(Alignment.CENTRE);
for (int k = 0; k < title.length; k++) {
Label label1 = new Label(k, 0, title[k], wcfF);
sheet.addCell(label1);
}
for (int j = 0; j < list.size(); j++) {
SportForm sp = (SportForm) list.get(j);
String context = "";
for (int i = 0; i < title.length; i++) {
/** Label(列号 ,行号 ,内容) */
switch (i) {
case 0:
context = sp.getSeattime().toString();
break;
case 1:
context = sp.getHabit().toString();
break;
case 2:
context = sp.getClimb().toString();
break;
case 3:
context = sp.getHouswork().toString();
break;
case 4:
context = sp.getExertime().toString();
break;
case 5:
context = sp.getExerhour().toString();
break;
case 6:
context = sp.getWalktime().toString();
break;
case 7:
context = sp.getSportname().toString();
break;
}
label = new Label(i, j + 1, context, wcfF);
/** put the title in row1 */
sheet.addCell(label);
}
}
/** 关闭工作区 */
workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}