方法一:
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.Label;
//创建工作簿
WritableWorkbook book= Workbook.createWorkbook();
WritableSheet sheet=book.createSheet(“sheet名称”,0);//创建第一个sheet
//创建单元格
Label labelC = new Label(x, y, “单元格内容”);//x,y为单元格位置
sheet.addCell(labelC);
//合并单元格
sheet.mergeCells(x1,y1,x2,y2);//合并从(x1,y1)到(x2,y2)的单元格
// 写入Exel工作表
book.write();
// 关闭Excel工作薄对象
book.close();
方法二:
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.Region;
//创建工作簿
HSSFWorkbook book = new HSSFWorkbook();
//创建工作簿
HSSFSheet sheet = book.createSheet(“sheetName”); //如果是英文名称,不需要下行代码
book.setSheetName(0, “sheet名称”, HSSFWorkbook.ENCODING_UTF_16 );
//打印页面设置
HSSFPrintSetup ps = sheet.getPrintSetup();
sheet.setMargin(HSSFSheet.BottomMargin,( double ) 0.5 );// 页边距
sheet.setMargin(HSSFSheet.LeftMargin,( double ) 0.1 );
sheet.setMargin(HSSFSheet.RightMargin,( double ) 0.1 );
sheet.setMargin(HSSFSheet.TopMargin,( double ) 0.5 );
ps.setLandscape(true); // 打印方向,true:横向,false:纵向
ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //纸张
//设置列宽
sheet.setColumnWidth((short)column,(short)width); //column为列号,width为宽度
//设置字体
HSSFFont cellFont = book.createFont();
cellFont.secellFontHeightInPoints((short) 24); //字号
cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //加粗
//设置单元格格式
HSSFCellStyle cellStyle = book.createCellStyle();
cellStyle.secellFont(cellFont);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //左右居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //上下居中
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); //左边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); //右边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); //上边框
cellStyle.setWrapText(true);//自动换行
//创建行
HSSFRow rowx = sheet.createRow(x);
rowx.setHeight((short)height); //设置行高
//创建单元格
HSSFCell cellx_y = rowx.createCell((short) y);
cellx_y.setEncoding(HSSFCell.ENCODING_UTF_16); //设置单元格字符
cellx_y.setCellValue(“单元格内容”); //单元格内容
cellx_y.setCellStyle(cellStyle); //单元格格式
//合并单元格
sheet.addMergedRegion(new Region(rowfrom,colfrom,rowto,colto));
//写入Exel工作表
book.write(java.io.OutputStream stream);
Tips:
1.个人认为jxl比poi好用,jxl直接可直接创建单元格,制定位置就行,而poi需先创建行,再建该行中的列,即单元格;
2.网上看到有人问单元格合并后设定的边框怎么就没有了?我也遇到了此问题,原因是合并的单元格没有创建
如cell1(x1,y1)和cell2(x2,y2)合并,我们习惯只创建cell1,并只指定其格式,这样是不对的,需要把与其合并的所有单元格都创建,不要怕麻烦哈,写个循环就行了。