对于使用代码操作表格的方式,每种语言都有不同的方式,尤其是在Java这个库很强大的情况下,基本上就变得容易很多,对于XSL文件,在实际工作中使用到很多,使用代码实现表格的操作和导出,基本上每个程序员都要用到。这里使用的是阿帕奇下的jar包,使用maven仓库直接导入坐标就行,不是maven的可以直接百度搜索一下阿帕奇POI基本上都能搜到。

 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency>

导入坐标之后,就是实现表格的创建和操作了,这里展示的是创建,修改和创建的道理也是一样的。下面是源码

public class POIXls {/*** 操作xls表格* @param workName 表格的名字* @param attributeName 第一行的属性名* @param savePath 要保存到的位置* @param list List集合,用于写入表格的集合(为什么不用map,这个根据实际需求来操作,因为在实际工作中有些表格的属性名字是重复的,使用map会被覆盖)* @throws IOException*/public void createWork(String workName, List<String> attributeName,List<List<String>> list,String savePath) throws IOException {Workbook wb = new HSSFWorkbook();//创建工作表Sheet sheet = wb.createSheet(workName);
//        sheet.setDefaultColumnWidth(width);//列宽
//        创建第一行,索引从零开始Row index = sheet.createRow(0);//行Cell cells = null;//列//创建第一行的属性,即工作表的第一行属性的名称for (int i = 0; i < attributeName.size(); i++) {cells = index.createCell(i);cells.setCellValue(attributeName.get(i));}for (int i = 0; i < list.size(); i++) {index = sheet.createRow(i+1);//i+1是因为第一行我们已经创建好了,如果不加1会覆盖前面的信息,为什么列不需要,因为列是从每行的第一列开始for (int j = 0; j < list.get(i).size(); j++) {Cell cell = index.createCell(j);cell.setCellValue(list.get(i).get(j));}}//创建工作表文件夹,将写好的内容写到磁盘File file = new File(savePath);if (!file.exists()){file.mkdir();}try(FileOutputStream fos = new FileOutputStream(savePath+workName+".xls")){wb.write(fos);fos.flush();}finally {if (wb!=null) wb.close();}}public static void main(String[] args) throws IOException {POIXls poiXls = new POIXls();List<String> listAttributeName = new ArrayList<>();listAttributeName.add("姓名");listAttributeName.add("性别");listAttributeName.add("电话");listAttributeName.add("备注");List<List<String>> list = new ArrayList<>();for (int i=0;i<2;i++) {List<String> arrayList = new ArrayList<>();arrayList.add("张三丰"+i);arrayList.add("男");arrayList.add("10086");arrayList.add("武当祖师"+i);list.add(arrayList);}poiXls.createWork("测试",listAttributeName,list,"C:\\log\\");}

结果:


这就是对于表格的操作,其中列宽是可以指定的,具体可以看代码。
注意:保存地址最好不要直接保存在系统盘下,有可能权限被拒绝,无法写入,如代码中的例子
C:\ ----->这个是写入失败的,权限被拒绝
C:\log\ ---->这样写入就不会出现问题,当然有可能是电脑的原因,具体看自己的使用习惯

Java实现电子表格的创建相关推荐

  1. Java实现Runnable接口创建多线程

    Java实现Runnable接口创建多线程 通过继承Thread类,实现多线程,但是,这种方式有一定的局限性,因为,Java中只支持单继承,一个类一旦继承了某个父类,就无法再继承Thread类 比如, ...

  2. Java继承Thread类创建多线程

    Java继承Thread类创建多线程 单线程示例 示例,Example01.java public class Example01{public static void main(String[] a ...

  3. java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据

    java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据 PrintWriter(String filename); PrintWriter(File file);<!-- ...

  4. java数组创建后大小能改变吗,在Java中,数组创建成功以后,其大小(??? )(能/不能)改变...

    在Java中,数组创建成功以后,其大小(??? )(能/不能)改变 答: 不能 新民主主义革命最基本的动力是(). 答:中国无产阶级 病人,男性,36岁.尿蛋白(++++),全身水肿1个月,测血压16 ...

  5. 浅析Java中对象的创建与对象的数据类型转换

    这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据 ...

  6. Java 中的目录创建处理

    Java 中的目录创建处理 java中的File类,提供了2个api用于处理目录创建,分别是mkdir和mkdirs. File file = new File(path); boolean resu ...

  7. Effective Java(1)-创建和销毁对象

    Effective Java(1)-创建和销毁对象 转载于:https://www.cnblogs.com/Johar/p/10556218.html

  8. executor线程池框架_如何使用Java 5 Executor框架创建线程池

    executor线程池框架 Java 5以Executor框架的形式在Java中引入了线程池,它允许Java程序员将任务提交与任务执行分离. 如果要使用Java进行服务器端编程,则线程池是维护系统可伸 ...

  9. 如何使用Java 5 Executor框架创建线程池

    Java 5以Executor框架的形式在Java中引入了线程池,它允许Java程序员将任务提交与任务执行分离. 如果要使用Java进行服务器端编程,则线程池是维护系统可伸缩性,鲁棒性和稳定性的重要概 ...

  10. 功能接口简介–在Java 8中重新创建的概念

    世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.Comparator,ja ...

最新文章

  1. Android shape 画的圆角带四个黑变 问题
  2. 小白学python系列-(3)基础数量类型
  3. linux 网络传输压塑文件,萌新的Linux学习之路(十一)文件压缩传输
  4. Linux 最简单的驱动程序hello world
  5. linux网卡内核文件在哪里,linux-2.6.35内核配置和网卡驱动添加
  6. console.log打印:自定义样式(含源码、效果图)
  7. ASP.NET验证码的实现
  8. matlab显示灰度值的概率,求Matlab统计灰度值的代码
  9. ElasticSearch学习(一):Linux环境准备
  10. 编译OpenJDK8:No CONF given, but more than one configuration found in
  11. 【SQL注入-01】SQL语句基础及SQL注入漏洞原理及分类
  12. coolfire文章四
  13. 趣学Python 教孩子学编程pdf
  14. 微信定位服务器在哪个位置打开,微信开了定位功能附近的人都看不到我是怎么回事...
  15. 2的31次方-1的python表达式_[python]运算符与表达式
  16. 猪圆谷润铬羽丰,派满歌甜四海赢
  17. Linux常见日志文件和常用命令
  18. sql server嵌套查询
  19. 马洛斯需求层次模型在用户体验中的理解
  20. 程序员可以在外包公司做多久?能做一辈子吗?

热门文章

  1. jscriptbug
  2. win10应用商店无法连接到服务器出错,win10应用商店无法连接网络的具体解决方法...
  3. Revealing the Invisible with Model and Data Shrinking for Composite-database Micro-expression Recogn
  4. 手机内存应该看ROM还是RAM
  5. 基于matlab七轴可伸缩关节机械臂物品抓取
  6. 跨时区时间运算以及时间实时更新方法
  7. 基于python的博客设计与开发_基于python的博客设计与开发毕业设计
  8. nginx 之安全配置
  9. Cpp多重继承会产生的问题
  10. 工业物联网的实际应用案例以及技术分析