POI做导出Excel设置单元格中字体大小颜色,合并行列
来源:互联网 发布:海贼王885 知乎 编辑:程序博客网 时间:2024/05/09 22:12
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.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
/**字体begin*/
style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
//背景颜色
// style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
// style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
// style.setBorderRight(HSSFCellStyle.BORDER_THIN);
// style.setBorderTop(HSSFCellStyle.BORDER_THIN);
// style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//生成一个字体
HSSFFont font=wb.createFont();
font.setColor(HSSFColor.BLACK.index);//HSSFColor.VIOLET.index //字体颜色
font.setFontHeightInPoints((short)12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //字体增粗
//把字体应用到当前的样式
style.setFont(font);
/**字体end*/
HSSFRow row = sheet.createRow((short) 0);
HSSFRow row2 = sheet.createRow((short) 1);
// 四个参数分别是:起始行,起始列,结束行,结束列
sheet.addMergedRegion(new Region(0, (short) 0, 5, (short) 0));
HSSFCell ce = row.createCell((short) 0);
ce.setCellValue("项目\\日期"); // 表格的第一行第一列显示的数据
ce.setCellStyle(style); // 样式,居中
int num = 0;
for (int i = 0; i < 9; i++) { // 循环9次,每一次都要跨单元格显示
// 计算从那个单元格跨到那一格
int celln = 0;
int celle = 0;
if (i == 0) {
celln = 0;
celle = 1;
} else {
celln = (i * 2);
celle = (i * 2 + 1);
}
// 单元格合并
// 四个参数分别是:起始行,起始列,结束行,结束列
sheet.addMergedRegion(new Region(0, (short) (celln + 1), 0,
(short) (celle + 1)));
HSSFCell cell = row.createCell((short) (celln + 1));
cell.setCellValue("merging" + i); // 跨单元格显示的数据
cell.setCellStyle(style); // 样式
// 不跨单元格显示的数据,如:分两行,上一行分别两格为一格,下一行就为两格,“数量”,“金额”
HSSFCell cell1 = row2.createCell((short) celle);
HSSFCell cell2 = row2.createCell((short) (celle + 1));
cell1.setCellValue("数量");
cell1.setCellStyle(style);
cell2.setCellValue("金额");
cell2.setCellStyle(style);
num++;
}
// 在后面加上合计百分比
// 合计 在最后加上,还要跨一个单元格 //四个参数分别是:起始行,起始列,结束行,结束列
sheet.addMergedRegion(new Region(0, (short) (2 * num + 1), 0,
(short) (2 * num + 2)));
HSSFCell cell = row.createCell((short) (2 * num + 1));
cell.setCellValue("合计");
cell.setCellStyle(style);
HSSFCell cell1 = row2.createCell((short) (2 * num + 1));
HSSFCell cell2 = row2.createCell((short) (2 * num + 2));
cell1.setCellValue("数量");
cell1.setCellStyle(style);
cell2.setCellValue("金额");
cell2.setCellStyle(style);
// 百分比 同上
sheet.addMergedRegion(new Region(0, (short) (2 * num + 3), 0,
(short) (2 * num + 4)));
HSSFCell cellb = row.createCell((short) (2 * num + 3));
cellb.setCellValue("百分比");
cellb.setCellStyle(style);
HSSFCell cellb1 = row2.createCell((short) (2 * num + 3));
HSSFCell cellb2 = row2.createCell((short) (2 * num + 4));
cellb1.setCellValue("数量");
cellb1.setCellStyle(style);
cellb2.setCellValue("金额");
cellb2.setCellStyle(style);
//输出一些数据 然后再输出表头
FileOutputStream fileOut = new FileOutputStream("D://workbook.xls");
wb.write(fileOut);
fileOut.close();
System.out.print("OK");
} catch (Exception ex) {
ex.printStackTrace();
}
}
//设置单元格字体颜色
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
public class test {
public static void main(String[] args) {
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet();
Cell cell = sheet.createRow(0).createCell(0);
CreationHelper helper = workbook.getCreationHelper();
RichTextString str = helper.createRichTextString("a\nb\nc\nd\ne\n");// 在这里使用\n表示回车
Font[] fonts = new Font[5];
fonts[0] = workbook.createFont();
fonts[0].setColor(HSSFColor.YELLOW.index);
fonts[1] = workbook.createFont();
fonts[1].setColor(HSSFColor.RED.index);
fonts[2] = workbook.createFont();
fonts[2].setColor(HSSFColor.BLUE.index);
fonts[3] = workbook.createFont();
fonts[3].setColor(HSSFColor.ROSE.index);
fonts[4] = workbook.createFont();
fonts[4].setColor(HSSFColor.BLACK.index);
for (int i = 0; i < 5; i++) {
str.applyFont(i * 2, (i + 1) * 2, fonts[i]);
}
cell.setCellValue(str);
try {
FileOutputStream out = new FileOutputStream(new File("d:\\1.xls"));
workbook.write(out);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- POI做导出Excel设置单元格中字体大小颜色,合并行列
- POI做导出Excel设置单元格中字体大小颜色,合并行列
- POI导出Excel--合并单元格
- POI导出Excel 合并单元格
- POI导出excel合并单元格
- POI导出Excel--合并单元格
- poi导出excel,支持合并的单元格
- poi合并单元格同时导出excel
- poi导出excel同时合并单元格
- Java poi导出excel合并标题单元格
- poi之excel导出(不需要合并单元格)
- java poi导出excel,合并单元格
- poi java导出excel时合并单元格
- java poi导出Excel表,合并单元格
- Java poi导出excel合并标题单元格
- excel 合并行列单元格
- poi导出excel合并单元格(包括列合并、行合并)
- Poi导出excel设置单元格数值格式
- Oracle11gr2分析函数新特性(一)
- PHP QQ 登录接口应用
- 同步和异步的区别
- 大学算法分析与设计复习总结
- .如何不用递归实现二叉树的前序/后序/中序遍历?
- POI做导出Excel设置单元格中字体大小颜色,合并行列
- 点击屏幕上EditText区域以外的任何地方隐藏键盘的解决方法
- android:configChanges
- 软件测试基础
- 用Lex工具做词法分析
- 查询出每门课都大于80分的学生
- dwz1.4.3 无限级左边栏菜单
- C++ 关键字typeid
- Web安全测试之XSS