Java *** 作Excel完美解决方案

Java *** 作Excel完美解决方案,第1张

只要有表格 就会有Microsoft Excel 用Microsoft Excel处理数据已成为不少人的习惯 Jakarta POI API就为Java程序员提供了一条存取Microsoft文档格式的神奇之路 其中最成熟的就是能存取Microsoft Excel文档的HSSF API 本篇文章就举例示范如何利用Java 创建和读取Excel文档 并设置单元格的字体和格式 为了保证示例程序的运行 必须安装Java sdk 和Jakarta POI Jakarta POI的Web站点是: 创建Excel 文档 示例 将演示如何利用Jakarta POI API 创建Excel 文档 示例 程序如下 import apache poi hssf usermodel HSSFWorkbookimport apache poi hssf usermodel HSSFSheetimport apache poi hssf usermodel HSSFRowimport apache poi hssf usermodel HSSFCellimport java io FileOutputStreampublic class CreateXL { /** Excel 文件要存放的位置 假定在D盘JTest目录下*/ public static String outputFile= D:/JTest/ gongye xls  public static void main(String argv[]){ try{// 创建新的Excel 工作簿HSSFWorkbook workbook = new HSSFWorkbook()// 在Excel工作簿中建一工作表 其名为缺省值// 如要新建一名为 效益指标 的工作表 其语句为 // HSSFSheet sheet = workbook createSheet( 效益指标 )HSSFSheet sheet = workbook createSheet()// 在索引 的位置创建行(最顶端的行)HSSFRow row = sheet createRow((short) )//在索引 的位置创建单元格(左上端)HSSFCell cell = row createCell((short) )// 定义单元格为字符串类型cell setCellType(HSSFCell CELL_TYPE_STRING)// 在单元格中输入一些内容cell setCellValue( 增加值 )// 新建一输出文件流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文档中的数据 示例 将演示如何读取Excel文档中的数据 假定在D盘JTest目录下有一个文件名为gongye xls的Excel文件 示例 程序如下 import apache poi hssf usermodel HSSFWorkbookimport apache poi hssf usermodel HSSFSheetimport apache poi hssf usermodel HSSFRowimport apache poi hssf usermodel HSSFCellimport java io FileInputStreampublic class ReadXL { /** Excel文件的存放位置 注意是正斜线*/ public static String fileToBeRead= D:/JTest/ gongye xls  public static void main(String argv[]){  try{// 创建对Excel工作簿文件的引用HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead))// 创建对工作表的引用 // 本例是按名引用(让我们假定那张表有着缺省名 Sheet )HSSFSheet sheet = workbook getSheet( Sheet )// 也可用getSheetAt(int index)按索引引用 // 在Excel文档中 第一张工作表的缺省索引是 // 其语句为 HSSFSheet sheet = workbook getSheetAt( )// 读取左上端单元HSSFRow row = sheet getRow( )HSSFCell cell = row getCell((short) )// 输出单元内容 cell getStringCellValue()就是取所在单元的值System out println( 左上端单元是 + cell getStringCellValue()) }catch(Exception e) {System out println( 已运行xlRead() : + e ) }}} 设置单元格格式 在这里 我们将只介绍一些和格式设置有关的语句 我们假定workbook就是对一个工作簿的引用 在Java中 第一步要做的就是创建和设置字体和单元格的格式 然后再应用这些格式 创建字体 设置其为红色 粗体 HSSFFont font = workbook createFont()font setColor(HSSFFont COLOR_RED)font setBoldweight(HSSFFont BOLDWEIGHT_BOLD) 创建格式 HSSFCellStyle cellStyle= workbook createCellStyle()cellStyle setFont(font) 应用格式 HSSFCell cell = row createCell((short) )cell setCellStyle(cellStyle)cell setCellType(HSSFCell CELL_TYPE_STRING)cell setCellValue( 标题 )总之 如本篇文章所演示的一样 Java程序员不必担心Excel工作表中的数据了 利用Jakarta POI API 我们就可以轻易的在程序中存取Excel文档 lishixinzhi/Article/program/Java/JSP/201311/19396

POI对excel的支持算是好的了。

但也没有你说的那样打印,预览,功能。

如果是应用程序,不是很好处理。

如果是web程序,可以如下处理。

1.在后台用POI类库生成excel。

2.用流的方式,将生成的excel传递给前台浏览器,在浏览器中打开。

3.使用浏览器的打印功能来进行打印。

jsp页面

发送请求地址 s p _createExcel do

public String createExcel() {  try {   HttpServletResponse response = ServletActionContext getResponse()   OutputStream os = response getOutputStream()   response reset()   response setContentType( application/msexcelcharset=gbk )  //设置响应格式

//设置响应头 即报表头   response setHeader( Content disposition attachmentfilename= + new String( 业务受理量统计报表 getBytes() iso ) + xls )

HSSFWorkbook hwb = new HSSFWorkbook()   HSSFSheet sheet = hwb createSheet( new Sheet )   hwb setSheetName( 业务受理量统计 )

HSSFRow row = sheet createRow((short) )   sheet createFreezePane( )//设置第一行显示内容   createCell(hwb row (short) 业务类型 )   createCell(hwb row (short) *** 作名称 )   createCell(hwb row (short) 数量 )   createCell(hwb row (short) 收取金额 )   createCell(hwb row (short) 工号 )

//busBeans列表 为要显示的数据

for (int i = i <= busBeans size()i++) {    HSSFRow row = sheet createRow((short) i)    for (int j = j <j++) {     if (j == ) {      createCell(hwb row (short) j busBeans get(i ) getStatName())     } else if (j == ) {      createCell(hwb row (short) j busBeans get(i ) getFunName())     } else if (j == ) {      createCell(hwb row (short) j busBeans get(i ) getCountNum())     } else if (j == ) {      createCell(hwb row (short) j busBeans get(i ) getMoney())     } else if (j == ) {      createCell(hwb row (short) j busBeans get(i ) getLoginNo())     }    }   hwb write(os)   os close()   return createSuccess   } catch (Throwable e) {   e printStackTrace()   this forwardError(e getMessage())  }  return fail  }

lishixinzhi/Article/program/Java/hx/201311/26089


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11401933.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存