中企动力 > 商学院 > excel数据导入java
  • ?

    超实用:通过Excel进行数据采集

    哥本哈根

    展开

    前言

    IBM大中华区总经理胡世忠曾说:数据构成了智慧地球的三大元素——智能化、互联化和物联化,而这三大元素又改变了数据来源、传送方式和利用方式,带来“大数据”这场信息社会的变革。

    从上可见,时代的变革是源于对数据的利用,对企业而言,数据也同样是其发展、转型的命脉。在工作中,我的前辈不止一次地强调,数据是公司的资产,而且举足轻重。我们对待数据,一定要严谨,经得起考验,对自己的数据负责,这是一个数据人的基本要求。

    数据资源

    大数据时代,数据虽然很多,但是也不是随意得来的,需要利用各种渠道和方式获得。不管从哪个角度来说,数据可分为内部数据和外部数据。内部数据是企业在日积月累的经营中得来的,我们应该对这些数据挖掘、收集有价值的东西,形成企业的数据资产。内部数据重在后期的处理和分析上。

    下面先说外部数据的获取方式,以及通过Excel操作来获取外部数据。

    外部数据获取方式

    1、专业网站看数据(某一个行业、某一件产品)2、通过收费渠道买数据(第三方数据平台等)3、通过特殊形式引数据(网站爬虫,统计网站等)4、自身积累数据(时间久、跨度长)

    Excel获取外部数据

    作为一个数据分析师以及想更进一步成长为数据科学家,熟练操作基本的办公软件以及SQL查询是很重要的。请看下面通过Excel获取外部数据的步骤。

    第1步:打开“新建web查询”框。新建Excel工作簿,在打开的工作表中单击“数据”选项卡,然后在“获取外部数据”组中单击“自网站”按钮,如下图。

    第2步:输入网址并选择要导入的表格数据。在弹出的“新建web查询”对话框中的“地址”文本框中复制粘贴上述网页的网址,然后单击“转到”,找到网站中的表格数据后单击表格左上角的箭头→,图标变成选中状态的复选框√。如下图。最后单击下方的“导入”按钮。

    第3步:选择数据的放置区域。点击导入后,Excel会出现“导入数据”对话框,如下图,选中你想放置的单元格,单击“确定”开始导入。

    第4步:美化导入的数据。由于导入的数据多且乱,要调整格式使数据规范,并启用冻结窗格功能方便浏览。如下图。

    好了,上面就是通过Excel操作来获取网站上的外部数据,很简单吧,但网站中的数据并非都是以表格的形式呈现,现在大部分是以json格式呈现,Excel不是万能的,而且现在很多网站需要付费才能导数据(上面说过数据就是企业的资产)。

    小结

    希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

    End.

  • ?

    数据科学养成记 之 R语言基础(3)——excel数据导入

    飞蛾

    展开

    经过昨天对包的学习,今天我们利用前两节课学习的知识来对excel数据进行导入。

    我们常见的excel导入方法为以下3种:

    1.将Excel转存为csv格式文件,读csv文件。

    a<- read.csv('exercise1.csv', header = T)

    2.利用RODBDC包读取excel

    b<- odbcConnectExcel2007('exercise1.xls')

    #32位操作系统使用odbcConnectExcel函数

    sqlTable(b)

    根据需求读取sheet1

    b<- sqlFetch(b, 'Sheet1$')

    odbcClose(b) #关闭语句

    3.利用openxlsx包读取excel

    c<- read.xlsx('exercise1.xlsx', sheet = 1)

    综合来看,openxlsx的方法简单粗暴,少有bug出现。被评为R语言和Excel读取的神器。

    注意,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。

    用读取excel来验证前两节课的学习成果吧!

    wx 数据科学养成记

    欢迎关注!

    数据科学yang'cheng'j

  • ?

    雨沐田:数据分析之Excel数据导入方法

    咎遥

    展开

    之前的文章对数据分析基础做了归纳总结,对数据分析有了基本的识了解后,还是要多多的实践才可以,但不管怎么实践,总是需要数据才可以,没数据总是无米之炊,今天就说说数据准备。

    既然在日常的工作中,Excel能解决绝大部分的问题,那就从Excel说起:

    一、Excel导入文本数据

    由于各种原因,在工作中我们可能会拿到很多文本数据,常见的就是txt格式的,为了方便处理,一般需要导入Excel,但前提是要有一定的规律才可以,如下面的数据就无法导入Excel表格(严格说是可以导入,但导入的数据依然无规律,无法直接有效使用):

    同样表达一类信息,但有规律就可以导入Excel表格,如下格式,就可以轻松导入:

    导入方法如下:

    1、打开Excel,选择数据模块,在选择 [自文本] 子菜单:

    2、选择文件所在位置后,弹出如下窗口:

    3、保持默认选择“按分隔符号”,此时看到预览,数据并没有被切分开,点击下一步:

    4、选择分割符号为逗号,此时看到预览,数据已经被正确切分,继续点击下一步:

    5、此步骤不做修改,直接点击 [完成]。

    6、数据被导入,如下图:

    是不是非常方便,实际工作中,需要导入txt文本的情况还是比较多的,如一些系统的日志文件,或从其他库中导出的数据,或者手工按固定格式记录的数据等,通过Excel文本导入是非常方便的。

    而且从第三步中可以看到,数据值之间的分隔符不一定是逗号,可以是任意字符或空格等,只要有相同的规律,就可以导入,可以多试试。

    二、从网站导入Excel

    还有一种常见情况是导入网页数据,特别是网页上的表格,这是采集外部数据的方法之一。

    虽然网页上的数据很多是可以直接复制粘贴的,但如果网页右键被屏蔽或数据过大,直接复制总不是那么方便的,就需要如下的方法:

    如我们要导入郭嘉统计局的数据:2017年9月中国制造业采购经理指数,网址如下:http://stats.gov/tjsj/zxfb/201709/t20170930_1539436.html

    我想要导入如下图所示的表格数据:

    操作步骤如下:

    1、打开Excel,选择数据模块,再选择 [自网站] 子菜单:

    2、在地址栏录入网址后,点击【转到】按钮,如下图

    3、打开的网页中找到我们要导入的表格并选择,点击表格左上角的黄色箭头图标,并变成绿色,如下图所示:

    4、点击导入,数据被导入Excel,如下图:

    是不是非常方便呢,最最关键的是从网页导入的数据,还可以根据需要刷新,方法:点击数据模块菜单下的 [全部刷新] 按钮,就可以刷新导入的数据:

    除了可以手工刷新还,还可以自动刷新数据,点击 [全部刷新] 菜单傍边的 [属性] 菜单,就可以设置是否自动刷新,具体操作请自行尝试。

    以上2种方法,不仅仅是数据分析基础工作,也是日常工作都非常有用的方法,多多使用,让Excel这个牛X的工具发挥真真的价值!

    关注公号「大数据分析狮」,学习数据分析,免费获取大数据分析百本电子书!

  • ?

    Java框架之配置数据源

    仇丑

    展开

    看到小伙伴们留言

    项目导入了IDE

    不会连接数据库

    看到这里我好痛心呀那么我们今天就来讲讲如何配置数据源。希望我可以把这个知识点说的简单明了,可以帮到各位小伙伴。

    首先来一起看一下我们的数据库链接四要素:

    第一行是根据数据库的类型不同选用不同的驱动包(我们这边用的是MySQL数据库)

    第二行是我们数据库链接的地址,后面 springjdbc_test 是我的数据库的名称,你的数据库叫什么这里就改成什么。

    剩下的两行是用户名和密码。

    现在我们要做的就是利用 properties 的配置文件将数据库连接的四要素信息注入到数据源当中

    在我们的项目下新建一个 jdbc.properties 的配置文件,就用我们上次的例子好了

    然后把我们的四要素写在里面

    小伙伴们注意把里面的数据库名称、用户名和密码修改成自己的就好可以了

    再回到我们的项目里,我们需要让 spring 加载 jdbc.properties 配置文件

    进行下面一步修改我们的 applicationContext.xm l配置文件

    然后我们来测试一下功能,这几个功能测试好几回了!我就不一一测了。

    ok!测试通过

    要知道其实数据库的链接池不止 jdbc 还有别的,如果我们用的是别的数据库链接池以该怎么做呢?

    接下来给大家演示一下如何配置c3p0数据源

    首先我们要先来引入c3p0连接池的jar包

    在 applicationContext.xml 配置文件里面注册 c3p0 连接池,然后修改参数名称,要注意一下 c3p0 的参数名称和jdbc是不一样的!

    测试一下

    测试通过

    我们再换一个数据库连接池,现在来配置 dbcp 数据源

    先引入 dbcp 数据源需要的 jar 包

    commons-dbcp-1.4.jar

    commons-pool-1.6.jar

    然后在 appliactionContext.xml 配置文件里面注册 dbcp 连接池

    测试一下

    那么

    我们今天的分享就到这里了

    现在小伙伴们知道

    在哪里修改配置了吗

    小伙伴们

    再见了

  • ?

    如何把excel数据导入navicat

    翟如冬

    展开

    在导出的Excel表中,手动的录入一些数据,然后将这个表导入到数据库中。

    步骤1:运行【导入向导】,选择导入数据的类型

    步骤2:选择文件数据源

    步骤3:跳过。

    步骤4:给源文件定义一些附加选项,前三个选项一定要填写正确,否则将不能完成正确的导入。

           [栏位名行]:数据表字段所在的行位置

           [第一个数据行]:导入的数据表中源数据是从第几行开始的

           [最后一个数据行]:导入的数据表中源数据是从第几行结束的

    步骤5:选择目标表,也可以新建一个表

    步骤6:定义源栏位和目标栏位的对应关系,如果目标栏位设置了主键,在这一步中一定要勾选,否则也将无法正常导入数据

    步骤7:选择导入模式,如果是新表,选择第一项。可以根据具体情况选择不同的选项。这里选择第三项。

    步骤8:点击【开始】执行导入命令

    执行完之后,去数据库验证一下:

    (本文内容由百度知道网友茗童贡献)

  • ?

    Excel办公必备|多个表格之间快速导入数据

    如彤

    展开

    对于一大部分走向职场的人来讲,Excel可能会经常用到。今天就分享一个比较实用的函数:多个表格之间快速导入数据 vlookup。

    很多人不明白这个函数的用法,今天我详细讲解一下。

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    相信很多人看到这个很蒙圈吧。那我注解一下。

    lookup_value 要查找的值

    table_array 要查找的区域

    col_index_num 需要数据在查找区域的第几列数

    range_lookup 模糊匹配/精确匹配

    可能说还是有人说看不懂吧。那我们一起来看一个例子吧。

    我们看这两个表格:

    两个表格的数据不同需要将另外一个表的数据导入,即图中的成绩表总分导入学生表中。这时我们就利用vlookup。

    我们就在学生表中进行如下操作

    =VLOOKUP(D2,[成绩信息.xlsx]Sheet1!$A$1:$B$7,2,0) 我们可以看到在这实际运用中公式就是这样的。

    这样我们就可以把多个表格之间快速导入数据。

    在使用公式的时候我们需要注意我们选择的对象必须有一个在表格的最左侧。在我的例子中就是姓名一列必须有一个在表的最左侧,这是是两个数据在不同表或者Sheet页中需要满足。

    是不是感觉一下子可以从繁琐的工作解脱,早下班不是梦啦。

    如果有不懂的可以在评论区评论哦。

  • ?

    一行代码完成Java的Excel读写

    巴黎

    展开

    前段时间在 github 上发现了阿里的 EasyExcel 项目,觉得挺不错的,就写了一个简单的方法封装,做到只用一个函数就完成 Excel 的导入或者导。刚好前段时间更新修复了一些 BUG,就把我的这个封装分享出来,请多多指教。

    附上源码:

    https://github/HowieYuan/easyexcel-method-encapsulation

    EasyExcel

    EasyExcel 的 github 地址:

    https://github/alibaba/easyexcel

    EasyExcel 的官方介绍:

    可以看到 EasyExcel 最大的特点就是使用内存少,当然现在它的功能还比较简单,能够面对的复杂场景比较少,不过基本的读写完全可以满足。

    一. 依赖

    首先是添加该项目的依赖,目前的版本是 1.0.2。

    com.alibabaeasyexcel1.0.2

    二. 需要的类

    1. ExcelUtil

    工具类,可以直接调用该工具类的方法完成 Excel 的读或者写。

    2. ExcelListener

    监听类,可以根据需要与自己的情况,自定义处理获取到的数据,我这里只是简单地把数据添加到一个 List 里面。

    publicclassExcelListenerextendsAnalysisEventListener {//自定义用于暂时存储data。//可以通过实例获取该值private List datas = new ArrayList<>();/** * 通过 AnalysisContext 对象还可以获取当前 sheet,当前行等数据 */ @Overridepublicvoidinvoke(Object object, AnalysisContext context) {//数据存储到list,供批量处理,或后续自己业务逻辑处理。 datas.add(object);//根据自己业务做处理 doSomething(object); }privatevoiddoSomething(Object object) { } @OverridepublicvoiddoAfterAllAnalysed(AnalysisContext context) { }public List getDatas() {return datas; }publicvoidsetDatas(List datas) {this.datas = datas; }}

    3. ExcelWriterFactroy

    用于导出多个 sheet 的 Excel,通过多次调用 write 方法写入多个 sheet。

    4. ExcelException

    捕获相关 Exception。

    三. 读取 Excel

    读取 Excel 时只需要调用 ExcelUtil.readExcel() 方法:

    @RequestMapping(value = "readExcel", method = RequestMethod.POST)public Object readExcel(MultipartFile excel) {return ExcelUtil.readExcel(excel, new ImportInfo());}

    其中 excel 是 MultipartFile 类型的文件对象,而 new ImportInfo() 是该 Excel 所映射的实体对象,需要继承 BaseRowModel 类,如:

    publicclass ImportInfo extends BaseRowModel {@ExcelProperty(index = 0)privateString name;@ExcelProperty(index = 1)privateString age;@ExcelProperty(index = 2)privateString email;publicString getName() {return name; }publicvoid setName(String name) {this.name = name; }publicString getAge() {return age; }publicvoid setAge(String age) {this.age = age; }publicString getEmail() {return email; }publicvoid setEmail(String email) {this.email = email; }}

    作为映射实体类,通过 @ExcelProperty 注解与 index 变量可以标注成员变量所映射的列,同时不可缺少 setter 方法。

    四. 导出 Excel

    1. 导出的 Excel 只拥有一个 sheet

    只需要调用 ExcelUtil.writeExcelWithSheets() 方法:

    @RequestMapping(value = "writeExcel", method = RequestMethod.GET)publicvoidwriteExcel(HttpServletResponse response) throws IOException { List list = getList(); String fileName = "一个 Excel 文件"; String sheetName = "第一个 sheet"; ExcelUtil.writeExcel(response, list, fileName, sheetName, new ExportInfo()); }

    fileName,sheetName 分别是导出文件的文件名和 sheet 名,new ExportInfo() 为导出数据的映射实体对象,list 为导出数据。

    对于映射实体类,可以根据需要通过 @ExcelProperty 注解自定义表头,当然同样需要继承 BaseRowModel 类,如:

    publicclass ExportInfo extends BaseRowModel {@ExcelProperty(value = "姓名" ,index = 0)privateString name;@ExcelProperty(value = "年龄",index = 1)privateString age;@ExcelProperty(value = "邮箱",index = 2)privateString email;@ExcelProperty(value = "地址",index = 3)privateString address;}

    value 为列名,index 为列的序号。

    如果需要复杂一点,可以实现如下图的效果:

    对应的实体类写法如下:

    publicclass MultiLineHeadExcelModel extends BaseRowModel {@ExcelProperty(value = {"表头1","表头1","表头31"},index = 0)privateString p1;@ExcelProperty(value = {"表头1","表头1","表头32"},index = 1)privateString p2;@ExcelProperty(value = {"表头3","表头3","表头3"},index = 2)private int p3;@ExcelProperty(value = {"表头4","表头4","表头4"},index = 3)private long p4;@ExcelProperty(value = {"表头5","表头51","表头52"},index = 4)privateString p5;@ExcelProperty(value = {"表头6","表头61","表头611"},index = 5)privateString p6;@ExcelProperty(value = {"表头6","表头61","表头612"},index = 6)privateString p7;@ExcelProperty(value = {"表头6","表头62","表头621"},index = 7)privateString p8;@ExcelProperty(value = {"表头6","表头62","表头622"},index = 8)privateString p9;}

    2. 导出的 Excel 拥有多个 sheet

    调用 ExcelUtil.writeExcelWithSheets() 处理第一个 sheet,之后调用 write() 方法依次处理之后的 sheet,最后使用 finish() 方法结束。

    publicvoidwriteExcelWithSheets(HttpServletResponse response) throws IOException { List list = getList(); String fileName = "一个 Excel 文件"; String sheetName1 = "第一个 sheet"; String sheetName2 = "第二个 sheet"; String sheetName3 = "第三个 sheet"; ExcelUtil.writeExcelWithSheets(response, list, fileName, sheetName1, new ExportInfo()) .write(list, sheetName2, new ExportInfo()) .write(list, sheetName3, new ExportInfo()) .finish();}

    write 方法的参数为当前 sheet 的 list 数据,当前 sheet 名以及对应的映射类。

    扩展阅读

    代码整洁之道|最佳实践小结

    Javascript 将 HTML 页面生成 PDF 并下载

    Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

    来源:https://juejin.im/post/5ba320546fb9a05d0b14304b

    文章来源网络,版权归作者本人所有,如侵犯到原作者权益,请与我们联系删除

  • ?

    使用excel的数据导入功能

    晓夏

    展开

    如果说我们需要获取计算机内的文本文件的时候,我们除了使用超链接的和复制的方法,我们可以可以使用excel的数据导入功能,可以把文本文件直接导入到excel中直接转换成表格样式。

    1、在 “客户资料统计” 工作簿中新建工作表, 并命名为 “北京永桦包装有限公司” 。

    2、切换到 【数据】 选项卡, 在 【获取外部数据】 组中单击 【自文本】 按钮。

    3、弹出【导入文本文件】对话框,找到文本文件“北京永桦包装有限公司” , 选择文件,单击【导入】按钮。

    图1

    4、弹出文本导入向导,在此可以预览文本文件,单击【下一步】按钮。

    图2

    5、选中 Tab 复选框, 单击【下一步】按钮。

    图3

    6、在弹出的 【导入文本向导-步骤 3】 对话框中单击【常规】单选按钮,单击【完成】按钮。

    图4

    7、弹出【导入数据】对话框,单击【现有工作表】单选按钮,单击【确定】按钮。

    图5

    8、txt文本信息已导入到excel工作表中。

    图6

    就通过以上的几个简单步骤我们就可以把txt转换成excel表格文件了,使用excel的数据导入功能,大大的节省了我们的工作时间,提高了我们excel工作效率。

  • ?

    集算器协助java处理多样性数据源之Excel

    情薄

    展开

    Java程序员读取和计算excel的程序一般要使用poi或其它开源包,这些开源包对编程的支持较为底层,整体学习成本和操作复杂度都很高。使用集算器辅助java处理excel文件就可以避免这些事务。

    下面通过一个例子看一下具体作法:从Excel文件orders.xls中读取订单信息,找出2010年1月1日(含)之后,SELLERID等于18的订单。orders.xls的内容如下:

    实现的思路是:用Java程序调用集算器脚本,读取和计算excel文件中的数据,之后将结果以ResultSet的方式返回给Java程序。由于集算器支持动态表达式解析和求值,使得Java程序可以像使用sql那样,灵活的处理数据。

    首先,程序员可以将条件“2010年1月1日(含)之后,并且SELLERID等于18的订单。”作为参数where传递给esProc程序,如下图:

    where是个字串,其值为:ORDERDATE>=date(2010,1,1) && SELLERID==18。

    esProc的程序代码如下:

    A2:按照条件过滤。这里使用宏来实现动态解析表达式,其中的where就是传入参数。集算器将先计算${…}里的表达式,将计算结果作为宏字符串值替换${…}之后解释执行。这个例子中最终执行的是:=A1.select(ORDERDATE>=date(2010,1,1) && SELLERID==18)。A1:定义一个file对象,导入excel数据。esProc的集成开发环境可以直观的显示出导入的数据,如上图右边部分。importxls函数也可以读写xlsx文件,它会根据文件扩展名自动判断excel的版本。

    A3:将符合条件的结果集返回给java。如果需要将结果写入另外一个excel文件,只要将A3单元格改为:=file("D:/file/orders_result.xls").exportxls@t(A2)。

    过滤条件发生变化时不用改变程序,只需改变where参数即可。例如,条件变为:2010年1月1日(含)之后,并且SELLERID等于18的订单,或者CLIENT等于PWQ的订单。Where的参数值可以写为:CLIENT=="PWQ"||ORDERDATE>=date(2010,1,1) && SELLERID==18。执行之后,A2中的结果集如下图:

    在Java程序中使用esProc JDBC调用这段程序获得结果的代码如下:(将上述esProc程序保存为test.dfx):

    //建立esProc jdbc连接

    Class.forName("com.esproc.jdbc.InternalDriver");

    con= DriverManager.getConnection("jdbc:esproc:local://");

    //调用esProc程序(存储过程),其中test是dfx的文件名

    com.esproc.jdbc.InternalCStatementst =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test(?)");

    //设置参数

    st.setObject(1,"ORDERDATE>=date(2010,1,1) && SELLERID==18 || CLIENT==\"PWQ\"");//执行esProc存储过程

    ResultSet set =st.executeQuery();

    对于代码较简单的脚本,还可以把代码直接写在调用集算器JDBC的Java程序中,而不必专门编写脚本文件(test.dfx):

    ResultSet set = st.executeQuery(

    "=file(\"D:/file/orders.xls\").importxls@t().select(ORDERDATE>=date(2010,1,1) && SELLERID==18 || CLIENT==\"PWQ\")");

    这段Java代码直接调用了集算器的一句脚本:从Excel文件中取得数据,并按照指定的条件过滤。

  • ?

    Java实现文件批量导入导出实例(兼容xls,xlsx)

    乔山

    展开

    1、介绍

    java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下。

    目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出。另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了。

    2、POI使用详解

    2.1 什么是Apache POI?

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

    2.2 POI的jar包导入

    本次讲解使用maven工程,jar包版本使用poi-3.14和poi-ooxml-3.14。目前最新的版本是3.16。因为3.15以后相关api有更新,部分操作可能不一样,大家注意下。

    2.3 POI的API讲解

    2.3.1 结构

    HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF - 提供读写Microsoft Word格式档案的功能。HSLF - 提供读写Microsoft PowerPoint格式档案的功能。HDGF - 提供读写Microsoft Visio格式档案的功能。

    2.3.2 对象

    本文主要介绍HSSF和XSSF两种组件,简单的讲HSSF用来操作Office 2007版本前excel.xls文件,XSSF用来操作Office 2007版本后的excel.xlsx文件,注意二者的后缀是不一样的。

    HSSF在org.apache.poi.hssf.usermodel包中。它实现了Workbook 接口,用于Excel文件中的.xls格式

    常用组件:HSSFWorkbook excel的文档对象HSSFSheet excel的表单HSSFRow excel的行HSSFCell excel的格子单元HSSFFont excel字体HSSFDataFormat 日期格式HSSFHeader sheet头HSSFFooter sheet尾(只有打印的时候才能看到效果)样式:HSSFCellStyle cell样式辅助操作包括:HSSFDateUtil 日期HSSFPrintSetup 打印HSSFErrorConstants 错误信息表

    XSSF在org.apache.xssf.usemodel包,并实现Workbook接口,用于Excel文件中的.xlsx格式

    常用组件:XSSFWorkbook excel的文档对象XSSFSheet excel的表单XSSFRow excel的行XSSFCell excel的格子单元XSSFFont excel字体XSSFDataFormat 日期格式和HSSF类似;

    2.3.3 两个组件共同的字段类型描述

    其实两个组件就是针对excel的两种格式,大部分的操作都是相同的。

    2.3.4 操作步骤

    以HSSF为例,XSSF操作相同。

    首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。

    3、代码操作

    3.1 效果图

    惯例,贴代码前先看效果图

    Excel文件两种格式各一个:

    代码结构:

    导入后:(我导入了两遍,没做校验)

    导出效果:

    3.2 代码详解

    这里我以Spring+SpringMVC+Mybatis为基础

    Controller:

    Service

    3.3 导出文件api补充

    大家可以看到上面service的代码只是最基本的导出。

    在实际应用中导出的Excel文件往往需要阅读和打印的,这就需要对输出的Excel文档进行排版和样式的设置,主要操作有合并单元格、设置单元格样式、设置字体样式等。

    3.3.1 单元格合并

    使用HSSFSheet的addMergedRegion()方法

    参数CellRangeAddress 表示合并的区域,构造方法如下:依次表示起始行,截至行,起始列, 截至列

    3.3.2 设置单元格的行高和列宽

    3.3.3 设置单元格样式

    1、创建HSSFCellStyle

    2、设置样式

    3、将样式应用于单元格

    3.3.4设置字体样式

    1、创建HSSFFont对象(调用HSSFWorkbook 的createFont方法)

    2、设置字体各种样式

    3、将字体设置到单元格样式

    大家可以看出用poi导出文件还是比较麻烦的,等下次在为大家介绍下irport的方法。

    导出的api基本上就是这些,最后也希望上文对大家能有所帮助。

    学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群495273252,我们一起学Java!

  • excel数据导入java