当前位置:文档之家› POI设置EXCEL单元格格式的操作小结

POI设置EXCEL单元格格式的操作小结

POI设置EXCEL单元格格式的操作小结
POI设置EXCEL单元格格式的操作小结

POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:

先获取工作薄对象:

Java代码

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet();

HSSFCellStyle setBorder = wb.createCellStyle();

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet();

HSSFCellStyle setBorder = wb.createCellStyle();

一、设置背景色:

Java代码

setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

二、设置边框:

Java代码

setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

三、设置居中:

Java代码

setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

四、设置字体:

Java代码

HSSFFont font = wb.createFont();

font.setFontName("黑体");

font.setFontHeightInPoints((short) 16);//设置字体大小

HSSFFont font2 = wb.createFont();

font2.setFontName("仿宋_GB2312");

font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示

font2.setFontHeightInPoints((short) 12);

setBorder.setFont(font);//选择需要用到的字体格式

HSSFFont font = wb.createFont();

font.setFontName("黑体");

font.setFontHeightInPoints((short) 16);//设置字体大小

HSSFFont font2 = wb.createFont();

font2.setFontName("仿宋_GB2312");

font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示

font2.setFontHeightInPoints((short) 12);

setBorder.setFont(font);//选择需要用到的字体格式

五、设置列宽:

Java代码

sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值

六、设置自动换行:

Java代码

setBorder.setWrapText(true);//设置自动换行

setBorder.setWrapText(true);//设置自动换行

七、合并单元格:

Java代码

Region region1 = new Region(0, (short) 0, 0, (short) 6);

//参数1:行号参数2:起始列号参数3:行号参数4:终止列号

sheet.addMergedRegion(region1);

Region region1 = new Region(0, (short) 0, 0, (short) 6);

//参数1:行号参数2:起始列号参数3:行号参数4:终止列号

sheet.addMergedRegion(region1);

附一个完整的例子:

Java代码

package https://www.doczj.com/doc/198158919.html,.util;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFCellStyle;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFFont;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFRichTextString;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFWorkbook;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFSheet;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFRow;

import https://www.doczj.com/doc/198158919.html,ermodel.HSSFCell;

import org.apache.poi.hssf.util.CellRangeAddress;

import org.apache.poi.hssf.util.Region;

import https://www.doczj.com/doc/198158919.html,ermodel.CellStyle;

import java.io.FileOutputStream;

import javax.servlet.http.HttpServlet;

public class CreateXL extends HttpServlet {

/** Excel 文件要存放的位置,假定在D盘下*/

public static String outputFile = "c:\\test.xls";

private void cteateCell(HSSFWorkbook wb, HSSFRow row, short col, String val) { HSSFCell cell = row.createCell(col);

// cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellV alue(val);

HSSFCellStyle cellstyle = wb.createCellStyle();

cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);

cell.setCellStyle(cellstyle);

}

public static void main(String argv[]) {

try {

// 创建新的Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 设置字体

HSSFFont font = workbook.createFont();

// font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

font.setFontHeightInPoints((short) 14);

// HSSFFont font2 = workbook.createFont();

// font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

// font.setFontHeightInPoints((short)14);

// 设置样式

HSSFCellStyle cellStyle = workbook.createCellStyle();

cellStyle.setFont(font);

cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

// HSSFCellStyle cellStyle2= workbook.createCellStyle();

// cellStyle.setFont(font2);

// cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

// 在Excel工作簿中建一工作表,其名为缺省值

// 如要新建一名为"月报表"的工作表,其语句为:

HSSFSheet sheet = workbook.createSheet("月报表");

CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0,

11);

sheet.addMergedRegion(cellRangeAddress);

//第一行

// 在索引0的位置创建行(最顶端的行)

HSSFRow row = sheet.createRow(0);

// 在索引0的位置创建单元格(左上端)

HSSFCell cell = row.createCell(0);

// 定义单元格为字符串类型

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

cell.setCellStyle(cellStyle);

// 在单元格中输入一些内容

cell.setCellV alue(new HSSFRichTextString("北京亿卡联科技发展有限公司小区门禁维修月报表"));

//第二行

cellRangeAddress = new CellRangeAddress(1, 1, 3, 6);

sheet.addMergedRegion(cellRangeAddress);

row = sheet.createRow(1);

HSSFCell datecell = row.createCell(3);

datecell.setCellType(HSSFCell.CELL_TYPE_STRING); datecell.setCellStyle(cellStyle);

datecell.setCellV alue("时间间隔xxxxx");

cellRangeAddress = new CellRangeAddress(1, 1, 9, 10);

sheet.addMergedRegion(cellRangeAddress);

row.createCell(9).setCellV alue("单位:元");

//第三行

row=sheet.createRow(2);

row.createCell(0).setCellV alue("一、");

row.createCell(1).setCellV alue("基本资料");

//第4行

row=sheet.createRow(3);

row.createCell(1).setCellV alue("小区名称:"); cellRangeAddress=new CellRangeAddress(3,3,2,11); sheet.addMergedRegion(cellRangeAddress);

row.createCell(2).setCellV alue("xxxxx");

//第5行

row=sheet.createRow(4);

row.createCell(1).setCellV alue("座落地点:"); cellRangeAddress=new CellRangeAddress(4,4,2,11); sheet.addMergedRegion(cellRangeAddress);

row.createCell(2).setCellV alue("xxxxx");

//第6行

row=sheet.createRow(5);

row.createCell(1).setCellV alue("建成年月:"); cellRangeAddress=new CellRangeAddress(5,5,2,4); sheet.addMergedRegion(cellRangeAddress);

row.createCell(2).setCellV alue("年月日:xxxxx"); row.createCell(5).setCellV alue("联系人"); cellRangeAddress=new CellRangeAddress(5,5,6,8); sheet.addMergedRegion(cellRangeAddress);

row.createCell(6).setCellV alue("XXX");

row.createCell(9).setCellV alue("电话"); cellRangeAddress=new CellRangeAddress(5,5,10,11); sheet.addMergedRegion(cellRangeAddress);

row.createCell(10).setCellV alue("XXX");

//第7行

row=sheet.createRow(6);

row.createCell(1).setCellV alue("住户:");

row.createCell(2).setCellV alue("(XX)");

row.createCell(3).setCellV alue("(户)"); cellRangeAddress=new CellRangeAddress(6,6,4,5); sheet.addMergedRegion(cellRangeAddress);

row.createCell(4).setCellV alue("共计()"); row.createCell(6).setCellV alue("幢"); cellRangeAddress=new CellRangeAddress(6,6,7,8); sheet.addMergedRegion(cellRangeAddress);

row.createCell(7).setCellV alue("发卡张数"); cellRangeAddress=new CellRangeAddress(6,6,9,10); sheet.addMergedRegion(cellRangeAddress);

row.createCell(9).setCellV alue("xxxx");

//第9行

row=sheet.createRow(8);

row.createCell(0).setCellV alue("二、"); cellRangeAddress=new CellRangeAddress(8,8,1,2); sheet.addMergedRegion(cellRangeAddress);

row.createCell(1).setCellV alue("维修用材料台账"); row.createCell(6).setCellV alue("三、"); cellRangeAddress=new CellRangeAddress(8,8,7,9); sheet.addMergedRegion(cellRangeAddress);

row.createCell(7).setCellV alue("维修工时记录");

//第10行

row=sheet.createRow(9);

row.createCell(0).setCellV alue("日期");

row.createCell(1).setCellV alue("维修事项");

row.createCell(2).setCellV alue("材料清单");

row.createCell(3).setCellV alue("数量");

row.createCell(4).setCellV alue("单价");

row.createCell(5).setCellV alue("材料金额");

row.createCell(7).setCellV alue("日期");

row.createCell(8).setCellV alue("技工");

row.createCell(9).setCellV alue("工时数");

row.createCell(10).setCellV alue("单价");

row.createCell(11).setCellV alue("工时金额");

//填充数据

for (int i = 0; i < 10; i++) {

row=sheet.createRow(9+i+1);

row.createCell(0).setCellV alue("日期");

row.createCell(1).setCellV alue("维修事项");

row.createCell(2).setCellV alue("材料清单");

row.createCell(3).setCellV alue("数量");

row.createCell(4).setCellV alue("单价");

row.createCell(5).setCellV alue("材料金额");

row.createCell(7).setCellV alue("日期");

row.createCell(8).setCellV alue("技工");

row.createCell(9).setCellV alue("工时数");

row.createCell(10).setCellV alue("单价");

row.createCell(11).setCellV alue("工时金额");

}

//第n+10行

row=sheet.createRow(9+10+1);

//cellRangeAddress=new CellRangeAddress(19,19,0,4);

//sheet.addMergedRegion(cellRangeAddress);

row.createCell(0).setCellV alue("累计:");

row.createCell(1).setCellV alue("xxx");

row.createCell(7).setCellV alue("累计:");

row.createCell(8).setCellV alue("xxx");

// 新建一输出文件流

FileOutputStream fOut = new FileOutputStream(outputFile); // 把相应的Excel 工作簿存盘

workbook.write(fOut);

fOut.flush();

// 操作结束,关闭文件

fOut.close();

System.out.println("文件生成...");

} catch (Exception e) {

System.out.println("已运行xlCreate() : " + e);

}

}

}

Excel制表单元格自定义格式参数详解(精)

单元格自定义格式参数详解 1、”G/通用格式”:以常规的数字显示,相当于”分类”列表中的”常规”选项。 例:代码:”G/通用格式”。10显示为10;10.1显示为10.1。 2、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于”#”的数量,则按”#”的位数四舍五入。 例:代码:”###.##”,12.1显示为12.10;12.1263显示为:12.13 3、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。例:代码:”00000”。1234567显示为1234567;123显示为00123 代码:”00.000”。100.14显示为100.140;1.1显示为01.100 4、”@”:文本占位符,如果只使用单个@,作用是引用原始文本, 要在输入数字数据之后自动添加文本,使用自定义格式为:”文本内容”@;要在输入数字数据之前自动添加文本,使用自定义格式为:@”文本内容”。@符号的位置决定了Excel 输入的数字数据相对于添加文本的位置。 如果使用多个@,则可以重复文本。 例:代码”;;;" 集团"@"部" “,财务显示为:集团财务部 代码”;;;@@@“,财务显示为:财务财务财务 5、”*”:重复下一次字符,直到充满列宽。 例:代码:”@*-”。”ABC ”显示为”ABC-------------------” 可就用于仿真密码保护:代码”**;**;**;**”,123显示为:************ 6、”,”:千位分隔符

例:代码” #,###“,12000显示为:12,000 7、\:用这种格式显示下一个字符。" 文本" ,显示双引号里面的文本。 “\”:显示下一个字符。和“”””用途相同都是显示输入的文本,且输入后会自动转变为双引号表达。 例:代码" 人民币 "#,##0,,"百万" ,与\人民币 #,##0,,\百万,输入1234567890显示为:人民币 1,235百万 8、“?”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为”??.?? ”和”???.??? ”, 对齐结果如下: 输入12.1212 显示12.12 12.121 9、颜色:用指定的颜色显示字符。可有八种颜色可选:红色、黑色、黄色,绿色、白色、兰色、青色和洋红。 例:代码:“[青色];[红色];[黄色];[兰色]”。显示结果为正数 为青色,负数显示红色,零显示黄色,文本则显示为兰色 [颜色N]:是调用调色板中颜色,N 是0~56之间的整数。例:代码:“[颜色3]”。单元格显示的颜色为调色板上第3种颜色。、 10、条件:可以单元格内容判断后再设置格式。条件格式化只限于使用三个条件,其中两个条件是明确的,另个是“所有的其他”。条件要放到方括号中。必须进行简单的比较。例:代码:“[>0]”正数”;[=0];”零”;负数”。显示结果是单元格数值大于零显示正数,等于0显示零,小于零显示“负数”。 11、“!”:显示“" ”。由于引号是代码常用的符号。在单元格中是无法用""" 来显示出来“" ”。要想显示出来,须在前加入“!”

POI操作excel内存一直增大解决方法

POI操作Excel POI操作Excel 内存一直增大直至溢出问题主要是针对写入内容操作.xlsx格式 遇到问题: 如果反复操作模板文件往工作表中写入数据会出现文件内存一直增大问题 多次操作的话直至内存溢出。 (1)首先要配置myEclipse ------->run----->run Configurations----->Java Application ----对其下要用到的类进行配置---->Arguments在VM arguments 下写入 -Xms512m -Xmx1048m -XX:PermSize=128m -XX:MaxPermSize=400m -Dcom.sun.management.jmxremote=true 点击apply 然后确定 (2)这里根据能想到的方法进行了多次测试: <1>多次下载数据写入sheet1 每次写入数据之前清空sheet1中的所有行内容,之后再写入新数据即每次操作都是对sheet1的更新;能够清空内容但是内存大小还会一直增大初步认为是内容清空了行所占的占位符还在那表面是空了但是真实的大小还是存在,暂没有解决此问题 示例代码 /*for(int i = 0;;i++){ XSSFRow row = sheet.getRow(i); if(row != null){ sheet.removeRow(row); }else{ break; } }*/ <2>多次下载数据写入sheet1 每次写入前对工作区的工作表进行删除操作,删除sheet1 ,然后在新建sheet1,写入数据,确保每次数据都是最新暂没有解决此问题 示例代码 public void deleteSheet(String targetFile,String sheetName) { try { FileInputStream fis = new FileInputStream(targetFile); HSSFWorkbook wb = new HSSFWorkbook(fis); //删除Sheet wb.removeSheetAt(wb.getSheetIndex(sheetName)); this.fileWrite(targetFile, wb); fis.close(); } catch (Exception e) { e.printStackTrace(); } } //新建 public static void newSheet1(String filePath,String sheetName) throws Exception{ try { System.out.println("然后走的这里新建sheet1+++++++++++++++++++++++++++++"); FileInputStream fis = new FileInputStream(filePath); XSSFWorkbook workbook2003 = new XSSFWorkbook(fis);

poi读写Excel文件

一、Excel基础 二、HSSF概况 三、通过usermodel读取文件 四、通过usermodel写入文件 五、通过eventusermodel读取文件 六、HSSF电子表格结构 七、通过HPSF读取文档属性 八、文档摘要信息 九、附录 ━━━━━━ 正文: ━━━━━━ 在上一篇文章中,我们介绍了POI项目的基本概念,了解了如何用POI来读写OLE 2复合文档结构,并给出了两个简单的例子:用POI来读写Excel文件的Workbook流。本文继续前文的话题,阐述如何用POI来读取/写入完整的Excel文件。 约定:POI项目2.0版现在已经接近正式发行阶段,开发进度迅速,不断有新的功能集成到原有的系统,同时也有对原有系统的修改。为了保证本文的及时性,本文将按照最近的1.9开发版说明。虽然编译最近的发行版源代码也能正常运行,但现在的代码和2.0的发行版会有一些出入。 一、Excel基础 Microsoft Excel 97文件格式也被称为BIFF8,最近版本的Excel只对该格式作了少量的改动。增加对新格式的支持除了增加项目的复杂性之外,唯一的效果也许只是不得不使每个用户升级代码,没有什么实际的好处。因此,在下文说明中,凡是提到Excel 97格式的地方其实都是指Excel从97到XP的格式。 二、HSSF概况 POI项目实现的Excel 97文件格式称为HSSF——也许你已经猜到,HSSF是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”(微软使某些原本简单的事情过分复杂,同时又过分简单地处理了某些原本需要灵活性的事情,让人不胜佩服!)也

Excel设置单元格内容格式

第十二讲设置单元格内容格式 教学目标: 1、知识目标 了解单元格内容格式的美化。 2、技能目标 掌握设置文本格式的方法;掌握设置数字格式的方法;掌握单元格中文本的对齐方式和方向。 3、情感目标 培养学生自主学习和合作学习意识。 教学重点: 单元格格式的设置 教学难点: 格式的正确设置、要做到美观大方 教学过程: 一、设置文本格式 1、运用【格式】工具栏设置文本格式 【字体】:包含了多种中文字体和英文字体,可在下拉列表中设置字符的字体。 【字号】:可在下拉列表中设置字符的大小。如果列表框中的字号不能满足需要,可以在框内自行输入数值,然后敲击键盘中的Enter键确认。 另外还可设置【加粗】、【倾斜】、【下划线】、【字体颜色】 2、运用菜单中的命令设置文本格式 (1)选择要设置格式的单元格或单元格区域。 (2)【格式】/【单元格】,打开【单元格格式】对话框。选择【字体】选项卡。 (3)设置字符的格式。 (4)单击【确定】。 二、设置数字格式 1、通过格式工具栏进行 “选定要格式化的单元格”→“单击(货币样式按钮、百分比样式、千分位、增加小数位数、减少小数位数)完成相应设置” 2、通过菜单命令进行 “选定要格式化的单元格”→“格式”→“单元格”→“数字”选项卡→完成相应设置→“确定” 三、设置单元格内容的对齐和方向 1、设置单元格内容的对齐方式 【格式】工具栏,可设置单元格中的文本是左对齐、居中对齐还是右对齐。 在【格式】工具栏中的【增加缩进量】和【减少缩进量】可以对文本进行缩进编辑。 在【单元格格式】对话框中,可以设置更多的对齐方式。 2、设置单元格内容的方向 (1)选取单元格或单元格区域。 (2)【格式】/【单元格】,在弹出的【单元格格式】对话框中选择【对齐】选项卡。 (3)在【对齐】选项卡中单击右侧的“文本”框。 (4)单击【确定】按钮,则文本方向被改变。 上机实践——设置“学生档案A.xls”文档内容的格式

POI操作Excel常用方法总结

POI操作Excel常用方法总结 一、POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2003对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。 二、HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。 三、POI EXCEL文档结构类 HSSFWorkbook excel文档对象 HSSFSheet excel的sheet HSSFRow excel的行 HSSFCell excel的单元格 HSSFFont excel字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾 HSSFCellStyle cell样式 HSSFDateUtil 日期 HSSFPrintSetup 打印 HSSFErrorConstants 错误信息表 四、EXCEL常用操作方法 1、得到Excel常用对象 POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:\test.xls")); HSSFWorkbook wb = new HSSFWorkbook(fs);//得到Excel工作簿对象 HSSFSheet sheet = wb.getSheetAt(0); //得到Excel工作表对象 HSSFRow row = sheet.getRow(i);//得到Excel工作表的行 HSSFCell cell = row.getCell((short) j);//得到Excel工作表指定行的单元格 cellStyle = cell.getCellStyle();//得到单元格样式 2、建立Excel常用对象 HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象 HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象 HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行 cellStyle = wb.createCellStyle();//创建单元格样式

设置Excel单元格格式的快捷键

设置Excel单元格格式的快捷键 在应用程序中使用快捷键,可以使我们避免在键盘与鼠标之间来回切换,从而节省大量的时间,显著地提高工作效率。 多掌握一些常用的快捷键,可以使您告别菜鸟时代,迅速成长为电脑应用的高手。 下面这些快捷键是用于在Excel中设置单元格格式的,相信一定会对您有所帮助。 Ctrl + Shift + ~: 应用“常规”数字格式“常规”格式不包含特定的数字格式,相当于在“单元格格式”对话框中的“数字”选项卡中选择“常规”。 比如原来的数字格式为“货币”或“百分比”形式,使用该快捷键可以将这些格式清除掉,恢复到常规的格式。 我们可以对比一下,使用普通的方法需要在单元格上单击右键,从弹出菜单中选择命令“设置单元格格式”,然后对话框中选择“常规”。 与使用快捷键相比,肯定是麻烦了许多。 Ctrl + Shift + $: 应用带两个小数位的“货币”数字格式,(负数在括号中)Ctrl + Shift + %: 应用不带小数位的“百分比”格式Ctrl + Shift + ^: 应用带两位小数位的“科学记数”数字格式Ctrl + Shift + !: 应用带两位小数位、使用千位分隔符且负数用负号(-)表示的“数字”格式Ctrl + Shift + &: 对选定单元格应用外边框Ctrl + Shift + _: 取消选定单元格的外边框Ctrl + B:

应用或取消加粗格式Ctrl + I: 应用或取消字体倾斜格式Ctrl + U: 应用或取消下划线Ctrl + 5: 应用或取消删除线Ctrl + 1: 显示“单元格格式”对话框Ctrl + 0: 隐藏单元格所在列,三连素材Ctrl + 9: 隐藏单元格所在行Ctrl + -: 删除选定的单元格,会弹出一个对话框供选择您可以在Excel中多练习几次,而且您一定会注意到,有些快捷键是比较容易记忆的,比如“Ctrl + Shift + %”对应的是“百分比”,“Ctrl + I”是设置斜体等。 等您熟悉了这些快捷键,就会从繁琐的鼠标操作中解脱出来了!

poi操作excel行自适应高度

import java.text.SimpleDateFormat; import java.util.Date; import https://www.doczj.com/doc/198158919.html,ng3.StringUtils; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFCell; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFDataFormat; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFDateUtil; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFRow; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFSheet; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFWorkbook; import https://www.doczj.com/doc/198158919.html,ermodel.Cell; import org.apache.poi.ss.util.CellRangeAddress; /** * excel行自适应高度 * @author lw * @version 2019年8月27日下午1:59:27 */ public class AutoRowHeightUtil { /** * 自适应excel行高 * @author lw * @date 2019年8月27日上午10:27:33 * @param cell 列 * @param margin 字体边距 */ public static void autoRowHeight(HSSFCell cell, short margin) { if(cell == null) { return ; } String cellVal = getStringCellValue(cell) ; if(StringUtils.isBlank(cellVal)) { return ;

Java用poi读取excel文件

Java用poi读取excel文件 POI 是Apache的一个开源的工具包,可以在Apache的官网下载到jar包。如下为简单示例: package POI; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFCell; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFRow; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFSheet; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class ReadExcel { public static void main(String[] args) { try { InputStream input = new FileInputStream("D:\\test.xls"); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); // Iterate over each row in the sheet Iterator rows = sheet.rowIterator();

POI设置EXCEL单元格格式的操作小结

POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: Java代码 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = wb.createCellStyle(); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = wb.createCellStyle(); 一、设置背景色: Java代码 setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); setBorder.setFillForegroundColor((short) 13);// 设置背景色setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 二、设置边框: Java代码 setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框 三、设置居中: Java代码 setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

巧用快捷键轻松设置Excel单元格格式

巧用快捷键轻松设置Excel单元格格式 Ctrl + Shift + ~:应用“常规”数字格式 “常规”格式不包含特定的数字格式,相当于在“单元格格式”对话框中的“数字”选项卡中选择“常规”。比如原来的数字格式为“货币”或“百分比”形式,使用该快捷键可以将这些格式清除掉,恢复到常规的格式。 我们可以对比一下,使用普通的方法需要在单元格上单击右键,从弹出菜单中选择命令“设置单元格格式”,然后对话框中选择“常规”。与使用快捷键相比,肯定是麻烦了许多。 Ctrl + Shift + $:应用带两个小数位的“货币”数字格式,(负数在括号中) Ctrl + Shift + %:应用不带小数位的“百分比”格式 Ctrl + Shift + ^:应用带两位小数位的“科学记数”数字格式 Ctrl + Shift + !:应用带两位小数位、使用千位分隔符且负数用负号(-) 表示的“数字”格式 Ctrl + Shift + &:对选定单元格应用外边框 Ctrl + Shift + _:取消选定单元格的外边框 Ctrl + B:应用或取消加粗格式 Ctrl + I:应用或取消字体倾斜格式 Ctrl + U:应用或取消下划线 Ctrl + 5:应用或取消删除线 Ctrl + 1:显示“单元格格式”对话框 Ctrl + 0:隐藏单元格所在列 Ctrl + 9:隐藏单元格所在行 Ctrl + -:删除选定的单元格,会弹出一个对话框供选择

隐藏单元格内容 选中要隐藏内容的单元格区域,右击选择“设置单元格格式”,在“数值”选项卡的“分类”列表中选择“自定义”,在“类型”输入框中输入三个半角的分号“;;;”(如图1),再切换到“保护”选项卡下,单击选中“隐藏”复选项,确定后单元格内容就被隐藏了。 再单击菜单“保护/保护工作表…”,设置密码保护工作表,即可彻底隐藏单元格内容。要取消隐藏得先单击菜单“保护/撤消保护工作表”。然后再从“设置单元格格式”中选择相应数值格式,或者选中单元格区域单击菜单“编辑/清除/格式”即可恢复显示。 值得大家注意的是,保护工作表后单元格是无法修改的。若希望保护后仍可修改单元格内容,可先选中需要输入的单元格,右击选择“设置单元格格式”,从“保护”选项卡中单击取消“锁定”复选项前的“√”,再进行保护工作表设置。这样被隐藏的单元格照样可以输入或修改,但是输入后单元格内容会被隐藏。 隐藏行列 有一些特殊表格像“工资单”、“人员记录”等可能就经常需要在打印前隐藏工作表中“等级”、“出生年月”、“扣费标准”等行列,在编辑时又要显示出,这样重复切换是比较麻烦的。对此有一个简单的方法可快速隐藏、显示指定行列。以隐藏“C:D”、“G”、“J”列为例: 选中“C:D”列,单击菜单“数据/组及分级显示/组合”,此时工作表上会显示分级的1、2按钮(如图2)。重复这一步,分别选中G列、J列进行组合。现在只要单击1按钮即可隐藏“C:D”、“G”、“J”列,单击2按钮则恢复显示。对于行的设置也是一样,只是行的1、2按钮是左侧。

java的POI操作Excel文件

java的POI操作Excel文件(2) 现在我要做的东西基本完成啦,我把这段时间使用POI的一些心得总结出来,希望能对和我遇到相同问题的朋友有所帮助,至于POI基本的使用方法,自己去看文档吧。 1、设置分页符的bug POI里的HSSFSheet类提供了setRowBreak方法可以设置Sheet的分页符。 Bug:如果你要设置分页符的Sheet是本来就有的,并且你没有在里面插入过分页符,那么调用setRowBreak时POI会抛出空指针的异常。 解决方法:在Excel里给这个sheet插入一个分页符,用POI打开后再把它删掉,然后你就可以随意插入分页符了。 如果sheet是由POI生成的则没有这个问题。我跟踪了setRowBreak的源代码,发现是Sheet.Java下的PageBreakRecord rowBreaks这个变量在搞鬼,如果Sheet里原来没有分页符,开发这个模块的那位兄台忘了为这个对象new实例,所以只能我们先手工给Excel插入一个分页符来触发POI为rowBreaks创建实例。 2、如何拷贝行 我在https://www.doczj.com/doc/198158919.html,的POI用户论坛翻遍了每个相关的帖子,找遍了api,也没看到一个拷贝行的方法,没办法,只能自己写: //注:this.fWorkbook是一个HSSHWorkbook,请自行在外部new public void copyRows (String pSourceSheetName, String pTargetSheetName, int pStartRow, int pEndRow, int pPosition) { HSSFRow sourceRow = null; HSSFRow targetRow = null; HSSFCell sourceCell = null; HSSFCell targetCell = null; HSSFSheet sourceSheet = null; HSSFSheet targetSheet = null; Region region = null; int cType; int i; short j; int targetRowFrom; int targetRowTo;

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法 最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。 读取excel文件的常用开源免费方法有以下几种: JDBC-ODBC Excel Driver jxl.jar jcom.jar poi.jar 下面分别对这几种方法分别进行探讨 1、JDBC-ODBC Excel Driver 这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可 查询excel表格。优点是:不需要第三方的jar包。 如下表样 首先在控制面板进行数据源ODBC登记 具体方法如下:

下面就是代码了。 package xuzhe;

import java.io.*; import java.sql.*; //java xuzhe.ExcelJDBC public class ExcelJDBC { public static void main(String[] args) throws SQLException{ Connection con = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" ); Statement st = con.createStatement(); ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" ); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); System.out.println ("表格列数"+numberOfColumns ); System.out.println( rsmd.getColumnName(1)+ "," + rsmd.getColumnName(2) + "," + rsmd.getColumnName(3)); while (rs.next()) { for (int i = 1; i <= numberOfColumns; i++) { if (i > 1) System.out.print(", "); String columnValue = rs.getString(i); System.out.print(columnValue); } System.out.println(""); } rs.close(); st.close(); } catch(Exception ex) { System.err.print("Exception: "); System.err.println(ex.getMessage()); } finally { con.close(); } } } 执行结果如下:

poi读取excel并输出到jsp页面

代码来源于网络,只做了部分修改,我也是刚用到很多都不懂,找了一些例子之类的自己用,有些不错的分享给大家,仅供参考。 下面这个是用servlet做(注意web.xml );其实原理一样;源码如下 readExcelServlet.java package com.test.servlet; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFCell; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFDateUtil; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFRow; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFSheet; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * author:wx * describe:Reads the Excel example * */ public class readExcelServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * * Constructor of the object. */ public readExcelServlet() { super(); } /** * Destruction of the servlet.
* */ public void destroy() { super.destroy(); }// Just puts "destroy" string in log // Put your code here /** * doGet */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

EXCEL中单元格格式的自定义详解教程

EXCEL中单元格格式的自定义详解教程 EXCEL中单元格格式的自定义详解教程这篇文章的内容如下: 1、”G/通用格式”:以常规的数字显示,相当于”分类”列表中的”常规”选项。 例:代码:”G/通用格式”。10显示为10;10.1显示为10.1。 2、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于”#”的数量,则按”#”的位数四舍五入。 例:代码:”###.##”,12.1显示为12.1;12.1263显示为:12.13 3、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。 例:代码:”00000”。1234567显示为1234567;123显示为00123 代码:”00.000”。100.14显示为100.140;1.1显示为01.100 4、”@”:文本占位符,如果只使用单个@,作用是引用原始文本, 要在输入数字数据之后自动添加文本,使用自定义格式为:"文本内容"@;要在输入数字数据之前自动添加文本,使用自定义格式为:@"文本内容"。@符号的位置决定了Excel 输入的数字数据相对于添加文本的位置。 如果使用多个@,则可以重复文本。 例:代码"集团"@"部"财务显示为:集团财务部 代码"@@@",财务显示为:财务财务财务 EXCEL中单元格格式的自定义详解教程这篇文章的内容如下: 5、”*”:重复下一次字符,直到充满列宽。 例:代码:”@*-”。”ABC”显示为”ABC-------------------”

可就用于仿真密码保护:代码”**;**;**;**”,123显示为:************ 6、”,”:千位分隔符 例:代码” #,###“,12000显示为:12,000 7、\:用这种格式显示下一个字符。"文本",显示双引号里面的文本。 “\”:显示下一个字符。和“”””用途相同都是显示输入的文本,且输入后会自动转变为双引号表达。 例:代码"人民币 "#,##0,,"百万",与\人民币 #,##0,,\百万, 输入1234567890显示为:人民币 1,235百万 8、“?”:数字占位符。在小数点两边为无意义的零添加空格,以便当按固定宽度时,小数点可对齐,另外还用于对不等到长数字的分数 例:分别设置单元格格式为”??.??”和”???.???”,对齐结果如下: 输入12.1212 显示12.12 12.121 9、颜色:用指定的颜色显示字符。可有八种颜色可选:红色、黑色、黄色,绿色、白色、兰色、青色和洋红。 例:代码:“[青色];[红色];[黄色];[兰色]”。显示结果为正数为青色,负数显示红色,零显示黄色,文本则显示为兰色 EXCEL中单元格格式的自定义详解教程这篇文章的内容如下: [颜色N]:是调用调色板中颜色,N是0~56之间的整数。 例:代码:“[颜色3]”。单元格显示的颜色为调色板上第3种颜色。、 10、条件:可以单元格内容判断后再设置格式。条件格式化只限于使用三个条件,其中两个条件是明确的,另个是“所有的其他”。条件要放到方括号中。必须进行简单的比较。

poi读取excel,包含所有excel版本,兼容excel2003和2007以上版本

package com.excel; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import https://www.doczj.com/doc/198158919.html,ermodel.HSSFWorkbook; import https://www.doczj.com/doc/198158919.html,ermodel.Cell; import https://www.doczj.com/doc/198158919.html,ermodel.DateUtil; import https://www.doczj.com/doc/198158919.html,ermodel.Row; import https://www.doczj.com/doc/198158919.html,ermodel.Sheet; import https://www.doczj.com/doc/198158919.html,ermodel.Workbook; import https://www.doczj.com/doc/198158919.html,ermodel.WorkbookFactory; import https://www.doczj.com/doc/198158919.html,ermodel.XSSFWorkbook; import org.apache.xmlbeans.impl.piccolo.io.FileFormatException; /** * 读取EXCEL内容 * @author lxr * */ public class TestReadExcelAll { private static final String EXTENSION_XLS = "xls"; private static final String EXTENSION_XLSX = "xlsx"; /** * 判断EXCEL版本 * @param in * @param filename * @return * @throws IOException */ public static Workbook getWorkbook(InputStream in,String filename)throws IOException {

EXCEL利用条件格式为单元格设置特殊格式的应用举例

EXCEL利用条件格式为单元格设置特殊格式的应用举例 在使用数据报表的时候,用户往往希望将重点信息特别标识出来,便于查看。条件格式提供了根据指定的条件,控制对应单元格的字体、底纹等格式显示方式 具体操作请看以下条件格式具体应用示例: 1、标注特定范围的数据;(点击蓝色标签,查看动画图片) 比如要将B2:B10中数据中数值小于60的用红色标注出来,选择B2单元格,菜单“格式”-“条件格式”弹出条件格式窗口,选“单元格数值”-“小于”,右面输入60, , 点“格式”,设置需要颜色。用格式刷将B2的格式刷到其他需要相同设置的单元格。也可以在设置前直接选择B2:B10单元格后再进行条件格式设置。 2、标注同列重复数据; 比如要标注A列重复数据,选择A2及以下的数据区域,菜单“格式”-“条件格式”-“公式”,输入公式=COUNTIF(A$1:A2,A2)>1 , 点“格式”,设置需要的字体、边框或颜色等格式。 如果同时要标注重复值中第一个单元格,将公式设为=COUNTIF(A:A,A2)>1。 如果A、B两列都相同才算重复的话,比如A列为名称,B列为规格,只有名称规格都相同才算重复,将公式设为=SUMPRODUCT(($A$2:$A$1000=$A2)*($B$2:$B$1000=$B2))>1。 3、对比两列数据相同值; 比如要从A列中将C列没有的数据标注出来,选择A2及以下的数据区域,菜单“格式”-“条件格式”-“公式”,输入公式=COUNTIF(C:C,A2)=0 , 点“格式”,设置需要的字体、边框或颜色等格式。 4、设置间隔底纹; 选择A2及以下的数据区域,菜单“格式”-“条件格式”-“公式”,输入公式 =MOD(ROW(),2)=1 , 点“格式”,设置需要的字体、边框或颜色等格式。 如果要设置间隔2行设置底纹,将公式改为=MOD(ROW(),3)=1 就可以了,依此类推,间隔3行的公式为=MOD(ROW(),3)=1 。 5、设置不受筛选影响的间隔底纹; 选择A2及以下的数据区域,菜单“格式”-“条件格式”-“公式”,输入公式 =MOD(SUBTOTAL(3,A$1:A2),2)=1 , 点“格式”,设置需要的字体、边框或颜色等格式。 6、标注带有公式的单元格;

poi读写excel案例

Java-Excel 报表开发 POI (2009-02-19 21:44:10) 转载▼ 分类:java 标签: java 杂谈 开发环境为windowsXP-SP2,Eclipse3.2,JDK1.5.07,其实差不多都行,不会有太大的差异。本文从POI 下载开始讲解,前提是开发环境包括系统变量等等已经正确设置完毕。 1.POI的下载 截至本文发表,POI最新版本是3.0.1,距离上一个Final版本有3年了吧,以至于我差点儿就把他放弃了——以为没人管了。官方的公告讲,这一版主要是追加了一些新的特性和BUG修正,不过稍微有点儿遗憾的是,还不能很好的操作Excel2007。 POI官方网址: https://www.doczj.com/doc/198158919.html,/ JAR包下载: https://www.doczj.com/doc/198158919.html,/poi/release/bin/poi-bin-3.0.1-FINAL-20070705.zip 源码下载: https://www.doczj.com/doc/198158919.html,/poi/release/src/poi-src-3.0.1-FINAL-20070705.zip 下载上面的JAR和源码(源码不是必须的,但是为了早日修得正果,深入系统的看看POI代码还是有必要的)并解压待用。 2.用Eclipse搭建项目 打开Eclipse 依次点击File->New->Java Project 输入项目名称,本例中设置为POI 单击完成 在项目上点击右键->New->Folder 输入文件夹名称lib 把刚才解压的poi-3.0.1-FINAL-20070705.jar复制过来 右键点击项目,选择Properties 在左侧列表里选中Java Build Path,右侧选中Libraries 点击Add JARs,选择POI项目的lib下的所有文件 两次OK确认,回到Eclipse界面 小技巧,快捷操作:可以用鼠标左键选中poi-3.0.1-FINAL-20070705.jar但不松开,拖到任务栏的Eclipse 图标上等候1秒左右,Eclipse会自动弹起来,依然不松开移动到lib文件夹上,这个时候鼠标后面跟个十

相关主题
文本预览
相关文档 最新文档