Java操作Excel完美解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java操作Excel完美解决方案相关的知识,希望对你有一定的参考价值。
参考技术A 只要有表格 就会有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 HSSFWorkbook; import apache poi hssf usermodel HSSFSheet; import apache poi hssf usermodel HSSFRow; import apache poi hssf usermodel HSSFCell; import java io FileOutputStream; public 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 HSSFWorkbook; import apache poi hssf usermodel HSSFSheet; import apache poi hssf usermodel HSSFRow; import apache poi hssf usermodel HSSFCell; import java io FileInputStream; public 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
Java基础学习总结(194)—— Java 多线程 + List 分段完美解决导入等批量更新场景问题
整体流程图
步骤
获取需要进行批量更新的大集合A,对大集合进行拆分操作,分成N个小集合 A-1 ~ A-N 。
开启线程池,针对集合的大小进行调参,对小集合进行批量更新操作,对流程进行控制,控制线程执行顺序。
1、按照指定大小拆分集合的工具类
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import java.util.List;
/**
* 拆分结合工具类
*/
public class SplitListUtils
/**
* 拆分集合
*
* @param <T> 泛型对象
* @param resList 需要拆分的集合
* @param subListLength 每个子集合的元素个数
* @return 返回拆分后的各个集合组成的列表
* 代码里面用到了guava和common的结合工具类
**/
public static <T> List<List<T>> split(List<T> resList, int subLi
以上是关于Java操作Excel完美解决方案的主要内容,如果未能解决你的问题,请参考以下文章
使用 easypoi 导出 excel 实现动态列,完美解决!