此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【mazhaoqing】截止到2008-07-04 16:55:32的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:40
结贴的总数量:3 结贴的总分数:40
无满意结贴数:1 无满意结贴分:100
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:33.33 % 无满意结分率:250.00%
敬礼!
楼主【mazhaoqing】截止到2008-07-04 16:55:32的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:40
结贴的总数量:3 结贴的总分数:40
无满意结贴数:1 无满意结贴分:100
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:33.33 % 无满意结分率:250.00%
敬礼!
很好用 的
response.setContentType("application/vnd.ms-excel; charset=Big5");
response.setHeader("Content-Disposition", "attachment; filename="
+ "senddeail_log" + ".xsl");
OutputStream os = null;
// 将工作薄输出到输出流
// 使用jxl導出,csv文件,沒有亂碼問題但是會彈出提示,后綴名被修改
/*
* ServletOutputStream os = response.getOutputStream();//输出的Excel文件URL
* response.setContentType("application/x-msdownload;charset=UTF-8");
* response.setHeader("Content-Disposition","attachment;
* filename=statreport.csv"); response.setCharacterEncoding("UTF-8");
* try { WritableWorkbook book = Workbook.createWorkbook(os);//创建可写工作薄 //
* 生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet
* sheet=book.createSheet("SUB_ID查詢報表",0); //
* 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) // 以及单元格内容为test sheet.addCell(new
* Label(0,0,"發送編號")); sheet.addCell(new Label(1,0,"時間"));
* sheet.addCell(new Label(2,0,"標題")); sheet.addCell(new
* Label(3,0,"接收號碼")); sheet.addCell(new Label(4,0,"訊息編號"));
* sheet.addCell(new Label(5,0,"接收時間")); sheet.addCell(new
* Label(6,0,"接收狀態"));
*
* QueryBean qb = (QueryBean)
* request.getAttribute(GlobalConstNaming.QUERY_BEAN_NAME); ResultBean
* resultBean = null; resultBean=statReportMag.thrdinfo(qb,jobid,date);
* List result = (List)resultBean.getTotalResult(); for(int i=0;i<result.size();i++){
* StatSendthrdbean bean = (StatSendthrdbean)result.get(i);
* sheet.addCell(new Label(0,i+1,(String) bean.getJobid()));
* sheet.addCell(new Label(1,i+1,(String) bean.getDate()));
* sheet.addCell(new Label(2,i+1,(String) bean.getContent()));
* sheet.addCell(new Label(3,i+1,(String) bean.getRecvmobile()));
* sheet.addCell(new Label(4,i+1,(String) bean.getMsgid()));
* sheet.addCell(new Label(5,i+1,(String) bean.getRecvdate()));
* sheet.addCell(new Label(6,i+1,(String) bean.getStatus())); // if
* (bean.getRecvdate() != null) { //// // 处理时间变成数字问题 // String ctime =
* DateUtil.dateToStr2(bean.getRecvdate().toString()); //
* sheet.addCell(new Label(6,i+1,ctime.substring(0,16))); // } else //
* sheet.addCell(new Label(6,i+1,"")); // } // 将工作薄输出到输出流 book.write();
* os.flush(); book.close(); PrintWriter out = new PrintWriter(os,
* true); out.close(); } catch (Exception e) { e.printStackTrace(); }
package book.io;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;/**
* 去http://jakarta.apache.org/site/downloads/downloads_poi.cgi下载poi项目相关的jar包和文档
*/
public class ExcelFile { /**
* 新建一个Excel文件,里面添加5行5列的内容,再添加两个高度为2的大单元格。
*
* @param fileName
*/
public void writeExcel(String fileName) { //目标文件
File file = new File(fileName);
FileOutputStream fOut = null;
try {
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中建一工作表,其名为缺省值。
// 也可以指定工作表的名字。
HSSFSheet sheet = workbook.createSheet("Test_Table"); // 创建字体,红色、粗体
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 创建单元格的格式,如居中、左对齐等
HSSFCellStyle cellStyle = workbook.createCellStyle();
// 水平方向上居中对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 垂直方向上居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 设置字体
cellStyle.setFont(font); //下面将建立一个4行3列的表。第一行为表头。
int rowNum = 0;//行标
int colNum = 0;//列标
//建立表头信息
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short) rowNum);
// 单元格
HSSFCell cell = null;
for (colNum = 0; colNum < 5; colNum++) {
// 在当前行的colNum列上创建单元格
cell = row.createCell((short) colNum); // 定义单元格为字符类型,也可以指定为日期类型、数字类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 定义编码方式,为了支持中文,这里使用了ENCODING_UTF_16
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
// 为单元格设置格式
cell.setCellStyle(cellStyle); // 添加内容至单元格
cell.setCellValue("表头名-" + colNum);
}
rowNum++;
for (; rowNum < 5; rowNum++) {
// 新建第rowNum行
row = sheet.createRow((short) rowNum);
for (colNum = 0; colNum < 5; colNum++) {
// 在当前行的colNum位置创建单元格
cell = row.createCell((short) colNum);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(cellStyle);
cell.setCellValue("值-" + rowNum + "-" + colNum);
}
} // 合并单元格
// 先创建2行5列的单元格,然后将这些单元格合并为2个大单元格
rowNum = 5;
for (; rowNum < 7; rowNum++) {
row = sheet.createRow((short) rowNum);
for (colNum = 0; colNum < 5; colNum++) {
// 在当前行的colNum位置创建单元格
cell = row.createCell((short) colNum);
}
}
//建立第一个大单元格,高度为2,宽度为2
rowNum = 5;
colNum = 0;
Region region = new Region(rowNum, (short) colNum, (rowNum + 1),
(short) (colNum + 1));
sheet.addMergedRegion(region);
//获得第一个大单元格
cell = sheet.getRow(rowNum).getCell((short) colNum);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(cellStyle);
cell.setCellValue("第一个大单元格"); //建立第二个大单元格,高度为2,宽度为3
colNum = 2;
region = new Region(rowNum, (short) colNum, (rowNum + 1),
(short) (colNum + 2));
sheet.addMergedRegion(region);
//获得第二个大单元格
cell = sheet.getRow(rowNum).getCell((short) colNum);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellStyle(cellStyle);
cell.setCellValue("第二个大单元格"); // 工作薄建立完成,下面将工作薄存入文件
// 新建一输出文件流
fOut = new FileOutputStream(file);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close(); System.out
.println("Excel文件生成成功!Excel文件名:" + file.getAbsolutePath());
} catch (Exception e) {
System.out.println("Excel文件" + file.getAbsolutePath() + "生成失败:" + e);
} finally {
if (fOut != null){
try {
fOut.close();
} catch (IOException e1) {
}
}
}
} /**
* 读Excel文件内容
*
* @param fileName
*/
public void readExcel(String fileName) {
File file = new File(fileName);
FileInputStream in = null;
try {
// 创建对Excel工作簿文件的引用
in = new FileInputStream(file);
HSSFWorkbook workbook = new HSSFWorkbook(in); // 创建对工作表的引用。
// 这里使用按名引用
HSSFSheet sheet = workbook.getSheet("Test_Table");
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,其语句为:
// HSSFSheet sheet = workbook.getSheetAt(0); //下面读取Excel的前5行的数据
System.out.println("下面是Excel文件" + file.getAbsolutePath() + "的内容:");
HSSFRow row = null;
HSSFCell cell = null;
int rowNum = 0;//行标
int colNum = 0;//列标
for (; rowNum < 5; rowNum++) {
// 获取第rowNum行
row = sheet.getRow((short) rowNum);
for (colNum = 0; colNum < 5; colNum++) {
// 获取当前行的colNum位置的单元格
cell = row.getCell((short) colNum);
System.out.print(cell.getStringCellValue() + "\t");
}
//换行
System.out.println();
} in.close();
} catch (Exception e) {
System.out.println("读取Excel文件" + file.getAbsolutePath() + "失败:" + e);
} finally {
if (in != null){
try {
in.close();
} catch (IOException e1) {
}
}
} }
public static void main(String[] args) throws Exception {
ExcelFile excel = new ExcelFile();
String fileName = "c:/temp/temp.xls";
excel.writeExcel(fileName);
excel.readExcel(fileName);
}
}
另外,如果官方下载不了包包。o(∩_∩)o...
POI的API以及jxl的API可到我的空间下载。(free)