POI设置excle单元格样式

更新时间:2023-07-17 10:05:52 阅读: 评论:0

POI设置excle单元格样式
Java利⽤POI⽣成Excel强制换⾏
使⽤POI创建⼀个简单的  myXls.xls  ⽂件
常⽤的包为  org.apache.poi.hssf.urmodel.*;
例⼦:
脾胃舒丸import  java.io.*;
import  org.apache.poi.hssf.urmodel.*;
public  class  ZoomSheet  {
public  ZoomSheet()  {
}
public  static  void  main(String  args[])
throws  IOException  {
HSSFWorkbook  wb  =  new  HSSFWorkbook();
HSSFSheet  sheet1  =  wb.createSheet("new  sheet");
FileOutputStream  fileOut  =  new  FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.clo();
}
}
类:
HSSFWorkbook 创建  xls  的对象; HSSFWorkbook  hw  =  new  HSSFWorkbook();
设置分区显⽰; hw.tRepeatingRowsAndColumns(sheet的index,  ⾏,  列,  ⾏,  列);
HSSFSheet 创建  xls  中的sheet(⼯作表); HSSFSheet  sheet  =  hw.createSheet("sheet1");      sheet1  是  sheet  的名称可缺省
设置列⾼; sheet.tColumnWidth((short)short,  (short)short);
HSSFRow 创建  xls  中的⾏; HSSFRow  row  =  ateRow(0);                            0  表⽰第⼀⾏
设置⾏⾼; row.tHeight((short)short);
HSSFFont 创建  xls  中的字体; HSSFFont  font  =  hw.createFont();
设定字体⼤⼩; font.tFontHeightInPoints((short)54);
设定为斜体; font.tItalic(true);
设定⽂字删除线; font.tStrikeout(true);
HSSFCellStyle 设定单元格风格; HSSFCellStyle  style  =  wb.createCellStyle();
加⼊字体; style.tFont(font);
HSSFCell 设定单元格; HSSFCell  cell  =  ateCell((short)0);
单元格⽔平对齐⽅式; style.tAlignment(align);        //单元格⽔平  0  普通  1  左对齐  2  居中  3  右对齐  4  填充  5  正当  6  居中选择
单元格垂直对齐⽅式; style.tVerticalAlignment(align);      //单元格垂直  0  居上  1  居中  2  居下  3  正当
单元格下边框为细线; style.tBorderBottom((short)short);
同上⼀命令⼀同使⽤,设置颜⾊; style.tBottomBorderColor((short)short);
单元格左边框; style.tBorderLeft((short)short);
style.tLeftBorderColor((short)short);
单元格右边框; style.tBorderRight((short)short);
style.tRightBorderColor((short)short);
单元格上边框; style.tBorderTop((short)short);
style.tTopBorderColor((short)short);
暗送秋波啥意思单元格字符编号(中⽂); cell.tEncoding(HSSFCell.ENCODING_UTF_16);      //中⽂
单元格显⽰的值; cell.tCellValue("中医药");    值的类型有:double,int,String,Date,boolean
单元格背景⾊; style.tFillForegroundColor((short)short);
图案类型; style.tFillPattern((short)short);
单元格合并; sheet.addMergedRegion(new  Region(⾏,  (short)列,  ⾏,  (short)列));
单元格风格加⼊; cell.tCellStyle(style);
打印设置
引⼊包 import  org.apache.poi.hssf.urmodel.HSSFPrintSetup;
创建打印设置对象 HSSFPrintSetup  hps  =  hs.getPrintSetup();
设置A4纸 hps.tPaperSize((short)9);
将页⾯设置为横向打印模式 hps.tLandscape(true);
设置打印页⾯为⽔平居中 sheet.tHorizontallyCenter(true);
设置打印页⾯为垂直居中 sheet.tVerticallyCenter(true);
⽹上找到的⽂章都是说在excel⾥的⽂字⾥加上\n,\n\r,\r\n之类,反正各种各样的都有,更奇怪的是还有⼈说在单元格⾥加上<br> 后来我试过⽤\r后的效⾥是⽣成的⽂件⾥,你⽤打开时,并不会换⾏,如果你⽤⿏标在单元格⾥点⼀下之后就会⾃动换⾏。
可以通过如下⽅式进⾏,
1. ⾸先在需要强制换⾏的单元格⾥使⽤poi的样式,并且把样式设定为⾃动换⾏
# HSSFCellStyle ateCellStyle();
写景的诗句有哪些
# cellStyle.tWrapText(true);
# cell.tCellStyle(cellStyle);
2. 其次是在需要强制换⾏的单元格,使⽤\就可以实再强制换⾏
1. HSSFCell cell = ateCell((short)0);
2. cell.tCellStyle(cellStyle);                          cell.tCellValue(new HSSFRichTextString("hello\r\n world!"));
这样就能实现强制换⾏,
换⾏后的效⾥是单元格⾥强制换⾏
hello
world!
public class ExcelTest {
/**
* @param args
*/
public static void main(String[] args) throws IOException {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new  sheet");
HSSFCellStyle style = wb.createCellStyle(); // 样式对象
style.tVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
style.tAlignment(HSSFCellStyle.ALIGN_CENTER);// ⽔平
/**字体begin*/
style.tFillForegroundColor(HSSFColor.SKY_BLUE.index);
//背景颜⾊
//          style.tFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//          style.tBorderBottom(HSSFCellStyle.BORDER_THIN);
//          style.tBorderLeft(HSSFCellStyle.BORDER_THIN);
/
/          style.tBorderRight(HSSFCellStyle.BORDER_THIN);
//          style.tBorderTop(HSSFCellStyle.BORDER_THIN);
//          style.tAlignment(HSSFCellStyle.ALIGN_CENTER);
//⽣成⼀个字体
HSSFFont ateFont();
font.tColor(HSSFColor.BLACK.index);//HSSFColor.VIOLET.index //字体颜⾊
font.tFontHeightInPoints((short)12);
font.tBoldweight(HSSFFont.BOLDWEIGHT_BOLD);        //字体增粗
//把字体应⽤到当前的样式
style.tFont(font);
/**字体end*/慷慨激昂造句
HSSFRow row = ateRow((short) 0);
HSSFRow row2 = ateRow((short) 1);
// 四个参数分别是:起始⾏,起始列,结束⾏,结束列
sheet.addMergedRegion(new Region(0, (short) 0, 5, (short) 0));
HSSFCell ce = ateCell((short) 0);
ce.tCellValue("项⽬\\⽇期"); // 表格的第⼀⾏第⼀列显⽰的数据
int num = 0;
for (int i = 0; i < 9; i++) { // 循环9次,每⼀次都要跨单元格显⽰
// 计算从那个单元格跨到那⼀格
int celln = 0;
int celle = 0;
if (i == 0) {
celln = 0;
celle = 1;
} el {
celln = (i * 2);
celle = (i * 2 + 1);
}
// 单元格合并
// 四个参数分别是:起始⾏,起始列,结束⾏,结束列
sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,
(short) (celle + 1)));
HSSFCell cell = ateCell((short) (celln + 1));
cell.tCellValue("merging" + i); // 跨单元格显⽰的数据
cell.tCellStyle(style); // 样式
// 不跨单元格显⽰的数据,如:分两⾏,上⼀⾏分别两格为⼀格,下⼀⾏就为两格,“数量”,“⾦额”                  HSSFCell cell1 = ateCell((short) celle);
HSSFCell cell2 = ateCell((short) (celle + 1));
cell1.tCellValue("数量");
cell1.tCellStyle(style);
cell2.tCellValue("⾦额");
cell2.tCellStyle(style);
num++;
}
// 在后⾯加上合计百分⽐消费英语
// 合计在最后加上,还要跨⼀个单元格    //四个参数分别是:起始⾏,起始列,结束⾏,结束列
sheet.addMergedRegion(new Region(0, (short) (2 * num + 1), 0,
(short) (2 * num + 2)));
HSSFCell cell = ateCell((short) (2 * num + 1));
cell.tCellValue("合计");
cell.tCellStyle(style);
HSSFCell cell1 = ateCell((short) (2 * num + 1));
HSSFCell cell2 = ateCell((short) (2 * num + 2));
cell1.tCellValue("数量");
cell1.tCellStyle(style);
cell2.tCellValue("⾦额");
cell2.tCellStyle(style);
// 百分⽐同上
sheet.addMergedRegion(new Region(0, (short) (2 * num + 3), 0,
(short) (2 * num + 4)));
HSSFCell cellb = ateCell((short) (2 * num + 3));
cellb.tCellValue("百分⽐");
cellb.tCellStyle(style);
HSSFCell cellb1 = ateCell((short) (2 * num + 3));
HSSFCell cellb2 = ateCell((short) (2 * num + 4));
cellb1.tCellValue("数量");
cellb1.tCellStyle(style);
cellb2.tCellValue("⾦额");
cellb2.tCellStyle(style);
//输出⼀些数据然后再输出表头
FileOutputStream fileOut = new FileOutputStream("D://workbook.xls");
wb.write(fileOut);
fileOut.clo();
System.out.print("OK");
} catch (Exception ex) {
ex.printStackTrace();
}
/
/设置单元格字体颜⾊
import .io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.urmodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.urmodel.Cell;
import org.apache.poi.ss.urmodel.CreationHelper;
import org.apache.poi.ss.urmodel.Font;
import org.apache.poi.ss.urmodel.RichTextString;
import org.apache.poi.ss.urmodel.Sheet;
import org.apache.poi.ss.urmodel.Workbook;
public class test {改善近义词
public static void main(String[] args) {鸡腿菇的做法
Workbook workbook = new HSSFWorkbook();
Sheet sheet = ateSheet();
Cell cell = ateRow(0).createCell(0);
CreationHelper helper = CreationHelper();
RichTextString str = ateRichTextString("a\nb\nc\nd\ne\n");// 在这⾥使⽤\n表⽰回车Font[] fonts = new Font[5];
fonts[0] = ateFont();
fonts[0].tColor(HSSFColor.YELLOW.index);
fonts[1] = ateFont();
fonts[1].tColor(HSSFColor.RED.index);
fonts[2] = ateFont();
fonts[2].tColor(HSSFColor.BLUE.index);
fonts[3] = ateFont();
fonts[3].tColor(HSSFColor.ROSE.index);
fonts[4] = ateFont();
fonts[4].tColor(HSSFColor.BLACK.index);
for (int i = 0; i < 5; i++) {
str.applyFont(i * 2, (i + 1) * 2, fonts[i]);
}
cell.tCellValue(str);
FileOutputStream out = new FileOutputStream(new File("d:\\1.xls")); workbook.write(out);
out.clo();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
大象的脚印e.printStackTrace();
}
}
}

本文发布于:2023-07-17 10:05:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1101167.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设置   打印   设定   样式   强制   数据
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图