java导入excel表格

java导入excel表格
java导入excel表格

1 从Excel文件读取数据表

Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading.java)

一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段:

我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。

一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段:

如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,它可以将任何类型的Cell值都作为一个字符串返回。示例代码中Cell(0, 0)是文本型,Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。

如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片段:

在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API 提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的取值方法getXXX(),就可以得到确定类型的值。API提供了以下基本类型,与Excel的数据格式相对应,如下图所示:

每种类型的具体意义,请参见Java Excel API Document。

当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。参考如下代码片段:

Java Excel API提供了许多访问Excel数据表的方法,在这里我只简要地介绍几个常用的方法,其它的方法请参考附录中的Java Excel API Document。Workbook类提供的方法

1. int getNumberOfSheets()

获得工作薄(Workbook)中工作表(Sheet)的个数,示例:

2. Sheet[] getSheets()

返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:

3. String getVersion()

返回正在使用的API的版本号,好像是没什么太大的作用。

Sheet接口提供的方法

1) String getName()

获取Sheet的名称,示例:

2) int getColumns()

获取Sheet表中所包含的总列数,示例:

3) Cell[] getColumn(int column)

获取某一列的所有单元格,返回的是单元格对象数组,示例:

4) int getRows()

获取Sheet表中所包含的总行数,示例:

5) Cell[] getRow(int row)

获取某一行的所有单元格,返回的是单元格对象数组,示例子:

6) Cell getCell(int column, int row)

获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,这与通常的行、列组合有些不同。

2 生成新的Excel工作薄

下面的代码主要是向大家介绍如何生成简单的Excel工作表,在这里单元格的内容是不带任何修饰的(如:字体,颜色等等),所有的内容都作为字符串写入。(完整代码见ExcelWriting.java)

与读取Excel工作表相似,首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象,这里要注意的是,只能通过 API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,因为类WritableWorkbook的构造函数为protected类型。示例代码片段如下:

API提供了两种方式来处理可写入的输出流,一种是直接生成本地文件,如果文件名不带全路径的话,缺省的文件会定位在当前目录,如果文件名带有全路径的话,则生成的Excel文件则会定位在相应的目录;另外一种是将Excel对象直接写入到输出流,例如:用户通过浏览器来访问Web服务器,如果 HTTP头设置正确的话,浏览器自动调用客户端的Excel应用程序,来显示动态生成的Excel 电子表格。

接下来就是要创建工作表,创建工作表的方法与创建工作薄的方法几乎一样,同样是通过工厂模式方法获得相应的对象,该方法需要两个参数,一个是工作表的名称,另一个是工作表在工作薄中的位置,参考下面的代码片段:

"这锅也支好了,材料也准备齐全了,可以开始下锅了!",现在要做的只是实例化API所提供的Excel基本数据类型,并将它们添加到工作表中就可以了,参考下面的代码片段:

https://www.360docs.net/doc/d811695342.html,bel labelC = new https://www.360docs.net/doc/d811695342.html,bel(0, 0, "This is a Label cell");

ws.addCell(labelC);

//添加带有字型Formatting的对象

jxl.write.WritableFont wf = new

jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);

jxl.write.WritableCellFormat wcfF = new

jxl.write.WritableCellFormat(wf);

https://www.360docs.net/doc/d811695342.html,bel labelCF = new https://www.360docs.net/doc/d811695342.html,bel(1, 0, "This is a Label Cell", wcfF);

ws.addCell(labelCF);

//添加带有字体颜色Formatting的对象

jxl.write.WritableFont wfc = new

jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,

UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);

jxl.write.WritableCellFormat wcfFC = new

jxl.write.WritableCellFormat(wfc);

https://www.360docs.net/doc/d811695342.html,bel labelCFC = new https://www.360docs.net/doc/d811695342.html,bel(1, 0, "This is a Label Cell", wcfFC);

ws.addCell(labelCF);

//2.添加Number对象

jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);

ws.addCell(labelN);

//添加带有formatting的Number对象

jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");

jxl.write.WritableCellFormat wcfN = new

jxl.write.WritableCellFormat(nf);

jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); ws.addCell(labelNF);

//3.添加Boolean对象

jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);

ws.addCell(labelB);

//4.添加DateTime对象

jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new

java.util.Date());

ws.addCell(labelDT);

这里有两点大家要引起大家的注意。第一点,在构造单元格时,单元格在工作表中的位置就已经确定了。一旦创建后,单元格的位置是不能够变更的,尽管单元格的内容是可以改变的。第二点,单元格的定位是按照下面这样的规律(column, row),而且下标都是从0开始,例如,A1被存储在(0, 0),B1被存储在(1, 0)。

最后,不要忘记关闭打开的Excel工作薄对象,以释放占用的内存,参见下面的代码片段:

这可能与读取Excel文件的操作有少少不同,在关闭Excel对象之前,你必须要先调用write()方法,因为先前的操作都是存储在缓存中的,所以要通过该方法将操作的内容保存在文件中。如果你先关闭了Excel对象,那么只能得到一张空的工作薄了。

3 拷贝、更新Excel工作薄

接下来简要介绍一下如何更新一个已经存在的工作薄,主要是下面二步操作,第一步是构造只读的Excel工作薄,第二步是利用已经创建的Excel工作薄创建新的可写入的Excel工作薄,参考下面的代码片段:(完整代码见ExcelModifying.java)

之所以使用这种方式构建Excel对象,完全是因为效率的原因,因为上面的示例才是API的主要应用。为了提高性能,在读取工作表时,与数据相关的一些输出信息,所有的格式信息,如:字体、颜色等等,是不被处理的,因为我们的目的是获得行数据的值,既使没有了修饰,也不会对行数据的值产生什么影响。唯一的不利之处就是,在内存中会同时保存两个同样的工作表,这样当工作表体积比较大时,会占用相当大的内存,但现在好像内存的大小并不是什么关键因素了。

一旦获得了可写入的工作表对象,我们就可以对单元格对象进行更新的操作了,在这里我们不必调用API提供的add()方法,因为单元格已经于工作表当中,所以我们只需要调用相应的setXXX()方法,就可以完成更新的操作了。

尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,以使单元格的内容以不同的形式表现。

新生成的工作表对象是可写入的,我们除了更新原有的单元格外,还可以添加新的单元格到工作表中,这与示例2的操作是完全一样的。

最后,不要忘记调用write()方法,将更新的内容写入到文件中,然后关闭工作薄对象,这里有两个工作薄对象要关闭,一个是只读的,另外一个是可写入的。

java导入导出excel操作

java导入导出excel操作(jxl) Java解释Excel数据(包的使用) 关键字: java excel 包 下载地址: 真实下载地址: 网站上对它的特征有如下描述: ● 支持Excel 95-2000的所有版本 ● 生成Excel 2000标准格式 ● 支持字体、数字、日期操作 ● 能够修饰单元格属性 ● 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java 的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel 文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。 搭建环境 将下载后的文件解包,得到,放入classpath,安装就完成了。 基本操作 一、创建文件 拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下: Java代码 /* * Created on Dec 30, 2007 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package ; import .*; import jxl.*; import .*;

/** * @author Ken * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class CreateXLS { public static void main(String[] args) { try { WritableWorkbook book = (new File("d:/")); 0 means this is 1st page. WritableSheet sheet = ("Sheet_1", 0); value is "test". Label label = new Label(0, 0, "test"); (label); WARN:necessarily use integrated package-path, otherwise will be throws path -error. value is . number = new0, ; (number); (); (); } catch (Exception e) { (); } } } 编译执行后,会在当前位置产生一个Excel文件。 二、读取文件 以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

JSP中导入导出Excel文件

JSP中导入导出Excel文件 一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel 对象,你可以控制一些属性如sheet,cell等等。 二.HSSF概况 HSSF 是sHorrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。 HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。 三.开始编码 1 .准备工作 要求:JDK 1.4+POI开发包 可以到 https://www.360docs.net/doc/d811695342.html,/dyn/closer.cgi/jakarta/poi/ 最新的POI工具包 2 . EXCEL 结构 HSSFWorkbook excel 文档对象介绍 HSSFSheet excel的表单 HSSFRow excel的行 HSSFCell excel的格子单元 HSSFFont excel字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾 和这个样式 HSSFCellStyle cell样式

Java实现Excel数据导入和导出的研究与应用

Java实现Excel数据导入导出的研究与应用 王晶晶 北京邮电大学网络教育学院(100088) E-mail:bolalisi_double@https://www.360docs.net/doc/d811695342.html, 摘要:Excel能够通过功能强大的工具将杂乱的数据组织成有用的信息,然后分析、交流和共享所得到的结果。很多系统由于存在着大量需要处理的数据,Excel本身强大的功能使得它成为处理分析这些数据首选的工具。随着Java语言成为越来越多系统的开发语言,利用Java进行Excel的数据导入导出在很多系统中都发挥着重要的作用,本文主要介绍了Jxl API的主要功能,并结合实例探讨了利用Jxl API操作Excel数据的导入和导出。 关键字:Java;Excel; Jxl API;数据导入导出 中图分类号:TP312文献标识码:A 1. 引言 MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连接的重要手段。在远程网络教学系统中,利用Excel表格统计学生的作业考试情况信息,便于老师了解学生的学习情况,分析教学效果,制定教学计划。所以,用Java操作Excel表格,导出相关的信息对于远程网络教育系统有着的很重要的意义。 在开源世界中,有两套比较有影响的API提供Excel数据导入导出的功能,一个是POI,一个是jExcelAPI。本文结合基于J2EE开发的多媒体教学系统中提供的将学生作业信息导出到Excel表格中的实例,详细阐述了利用JAVA开发的jExcelAPI操作excel的方法。 2. Jxl 简介 2.1 Java语言简介 Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言[1]。它具有以下一些特点[2]:简单,面向对象,分布式,解释执行,鲁棒,安全,体系结构中立,可移植,高性能,多线程以及动态性。 2.2什么是Jxl Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。 Jxl发布的稳定版本是V2.0,提供以下功能: 从Excel 95、97、2000等格式的文件中读取数据[3]; 读取Excel公式(可以读取Excel 97以后的公式)[3];

JAVA导出EXCEL类(TSV格式)

package com.bear.util; import java.io.*; import javax.swing.*; import javax.swing.table.*; public class ExcelUtil { public void exportTable(JTable table,String title) throws IOException { TableModel model = table.getModel(); JFileChooser fileChooser = new JFileChooser(); fileChooser.setCurrentDirectory(new File("."));//设置当前目录 fileChooser.setAcceptAllFileFilterUsed(false); fileChooser.addChoosableFileFilter(new javax.swing.filechooser.FileFilter() { public boolean accept(File file) { if (file.isDirectory()) return true; return (file.getName().indexOf("xls") != -1); } public String getDescription() { return "Microsoft Excel文件(*.xls)"; } }); //fileChooser.showSaveDialog(null); int returnVal =fileChooser.showSaveDialog(fileChooser); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); if (file.exists()) { int copy = JOptionPane.showConfirmDialog(null,"是否要覆盖当前文件?", "保存", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if (copy == JOptionPane.YES_OPTION) fileChooser.approveSelection(); else return; } else fileChooser.approveSelection(); FileWriter out = new FileWriter(file); out.write(title + "\n\n"); for(int i=0; i < model.getColumnCount(); i++) out.write(model.getColumnName(i) + "\t"); out.write("\n"); for(int i=0; i< model.getRowCount(); i++) {

如何在EXCEL表格中批量插入对应图片

如何在EXCEL表格中批量插入对应图片学生照片用身份证号命名后,核对是个麻烦事儿,有了这个表格就直观多了。 制作过程如下: 1、粘贴学生信息、输入公式并向下填充 在D2单元格输入公式(复制下面的公式并粘贴到D2单元格中): ="

" 公式含意:在该单元格中插入来自d盘:\学生照片文件夹中\C2单元格中数值(身份证号命名的).jpg图片

向下填充 2、在D盘根目录中新建一个名为:学生照片的文件夹,并把全校按身份证号码命名的学生图片复制其中。 这些图片最好批量转尺寸为120×150。太小看不清,太大查看起来不便。 3、打开剪贴板 4、选择公式区域(最好分几次进行,每次不超过200格),并复制到剪贴板(见下图窗口右边)。 (因在公式的状态下,很多操作是不能正常进行的,这一步的目的就是留数据除公式。)

5、点击剪贴板中刚复制的数据,把这些数据又粘贴回来(见下图鼠标箭头)。 6、把公式列中的@替换为"(半角单引号)

7、再选择公式区并将数据复制进剪贴板(不要把第一行学生图片这格选进去) 8、将复制到剪贴板的公式重新粘贴回来(见图中鼠标箭头)。 9、调整行高 行高设为:100-120,视图片大小而定。

10、完成表格进行核对 学生名和照片对应表就做好了,如有张冠李戴,及时更改。 学籍照片处理方法 见:全国中小学学籍平台学生照片处理方法图文详解(按住Ctrl 键用鼠标点击上面的红字打开对应网页) 照片命名成身份证号 见:照片批量命名成身份证号的方法图文详解 (按住Ctrl 键用鼠标点击上面的红字打开对应网页)

Excel数据处理技巧:PowerQuery插件一键生成报表.doc

Excel 数据处理技巧:Power Query 插件一键生成报表 每个月月底,财务小王都要汇总全国各地区的销售数据做数 据分析。之前他采用的方法就是把各个工作表的数据复制再 粘贴到一个工作表里,然后进行数据透视表分析。可是全国 有那么多城市,复制粘贴太费时间,而且如果中间数据有变 动怎么办?现在不用担心了,今天给大家介绍一个EXCEL 很好用的技能 Power Query,帮助大家实现动态获取多工作表 数据。 一、初识 Power Query 如下图,在这个工作簿里,各个工作表分别列举了全国各个 地区的销售数据,这里为了举例,只列举四个城市的基本数 据。 首先,打开数据选项卡下,在[ 获取与转换 ]组中,新建查询---从文件 --- 从工作簿。

Power Query 本来是 EXCEL 的一个插件,在EXCEL2016 以前版本都需要另外下载,但是在 Excel2016 中,这项技能已经内置在数据选项卡 [ 获取与转换 ] 组中,以供大家直接使用。由此 足以可见 Power Query 的重要性。这里就推荐大家升级到最新的EXCEL 版本, EXCEL2016 以前的版本呢,大家可以自行百度下载安装这个插件。 在弹出的窗口中找到工作簿,导入。 在弹出的导航器界面,勾选“选择多项”,把这几个需要合 并的工作表全部选中,再选择右下角的“编辑”。 这样就进入了POWER QUERY 编辑器界面。 这个界面就是我们进行 Power Query 操作的主要界面,可以看到,上面的菜单栏跟 EXCEL 菜单栏很相似,左侧的查询窗口 显示的是打开的四个工作表,右侧查询设置界面是类似于 PS 一样的可以进行操作的记录和返回。中间区域则显示了表格的 内容。 二、使用 Power Query 汇总数据 点击开始选项卡下[ 组合 ] 组里面的追加查询。

【VIP专享】java 导出excel 增量写入同一sheet

sheetAct=createExcelHead(sheetAct,writer,excelHead,title+num); } list=agentService .queryExportData(map); if (j<5){ findExcelData(j*limit,list,sheetAct); }else { int num=j/5; findExcelData((j-num*5)*limit,list,sheetAct); } } writer.write();}catch (Exception e){ LOGGER .error("Exception:", e.fillInStackTrace()); } finally { if (null != writer) { writer.close(); } } return out.toByteArray(); } findExcelData 方法: private void findExcelData(int start,List list,ExcelWriter.Sheet sheetAct){ StudioSeriesPrice detail=null ;/*拼装excel 内容*/ for (int i=0;i

Java数据导入导出Excel

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import jxl.Workbook; import jxl.format.UnderlineStyle; import https://www.360docs.net/doc/d811695342.html,bel; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCell; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCellStyle; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFRow; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFSheet; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class ExcelOpt { /** * 生成一个Excel文件jxl * @param fileName 要生成的Excel文件名 * @jxl.jar 版本:2.6 */ public static void writeExcel(String fileName){ WritableWorkbook wwb = null; try { //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName)); } catch (IOException e) { e.printStackTrace(); } if(wwb!=null){ //创建一个可写入的工作表 //Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置

EXCEL表格如何批量导入图片

EXCEL表格如何批量导入图片 1、准备好图片放入一个文件夹(图片名字需与表格的名称一致,为*.jpg) 2、右击图片属性,图片路径,红框处,复制出来: G:\图片\ 3、回到表格,拷贝红框的文字,复制-粘贴到*.txt文档,转为纯文字格式,txt 文档另存为11(名字任意)。

表格里的图片名称(图片名字需与表格的名称一致,为*.jpg),我习惯用货号命名图片,如下图:

4、做好导入图片公式的txt格式文档。 ①把“商品编码”删掉。

②表格要求导入的图片不多的话,可以直接用复制-粘贴,图片名称前后是一样的。如果是上百个,上千个图片需要导入,那就要借助word的力量。 word每行行首、行末添加相同的指定字符 行首:替换^p为^pA(A为你要插入的字符)

行末:替换^p为A^p(A为你要插入的字符) 图片名称前的文字:

③把txt的货号复制到word文档,替换行首,行末 第一行的行首没有替换到,把最后一行的剪切上去即可,手动调整后(注意每一行的图片名称不能调换顺序)

替换行末: 点击全部替换。

④替换好后发现引号是全角引号,必须要转为英文状态下的半角引号。 ⑤复制文档1容,粘贴到11.txt文档

java实现excel导入导出

Java数据导入Excel package com.bossy.base; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import jxl.Workbook; import jxl.format.UnderlineStyle; import https://www.360docs.net/doc/d811695342.html,bel; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCell; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCellStyle; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFRow; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFSheet; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem;

如何在EXCEL表格中批量插入对应图片-更新

如何在EXCEL表格中批量插入对应图片-最新更新

————————————————————————————————作者:————————————————————————————————日期:

如何在EXCEL表格中批量插入对应图片学生照片用身份证号命名后,核对是个麻烦事儿,有了这个表格就直观多了。 制作过程如下: 1、粘贴学生信息、输入公式并向下填充 在D2单元格输入公式(复制下面的公式并粘贴到D2单元格中): ="

" 公式含意:在该单元格中插入来自d盘:\学生照片文件夹中\C2单元格中数值(身份证号命名的).jpg图片

向下填充 2、在D盘根目录中新建一个名为:学生照片的文件夹,并把全校按身份证号码命名的学生图片复制其中。 这些图片最好批量转尺寸为120×150。太小看不清,太大查看起来不便。 3、打开剪贴板 4、选择公式区域(最好分几次进行,每次不超过200格),并复制到剪贴板(见下图窗口右边)。 (因在公式的状态下,很多操作是不能正常进行的,这一步的目的就是留数据除公式。)

5、点击剪贴板中刚复制的数据,把这些数据又粘贴回来(见下图鼠标箭头)。 6、把公式列中的@替换为"(半角单引号)

7、再选择公式区并将数据复制进剪贴板 8、选择“Unicode文本”粘贴 ①.复制(学生照片列数据)→粘贴(到记事本) ②.复制(刚才粘贴到记事本中的数据)→(回到Excel工作表学生照片列)右键→选择性粘贴 ③.选“Unicode文本”粘贴回Excel工作表→确定 (如果数据不到记事本中过一下,“选择性粘贴”窗口中就不会出现“Unicode文本”粘贴选项,这一步很重要)

java导出excel案例

JA V A实现EXCEL的导入和导出(四) JA V A EXCEL API简介 Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。 现在发布的稳定版本是V2.0,提供以下功能: * 从Excel 95、97、2000等格式的文件中读取数据; * 读取Excel公式(可以读取Excel 97以后的公式); * 生成Excel数据表(格式为Excel 97); * 支持字体、数字、日期的格式化; * 支持单元格的阴影操作,以及颜色操作; * 修改已经存在的数据表; 现在还不支持以下功能,但不久就会提供了: 1. 不能够读取图表信息; 2. 可以读,但是不能生成公式,任何类型公式最后的计算值都可以读出; 回页首 应用示例 1 从Excel文件读取数据表 Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading.java) import java.io.*; import jxl.*; … … … … try { //构建Workbook对象, 只读Workbook对象 //直接从本地文件创建Workbook //从输入流创建Workbook InputStream is = new FileInputStream(sourcefile); jxl.Workbook rwb = Workbook.getWorkbook(is); } catch (Exception e) { e.printStackTrace();

Excel自动生成员工简历表

Excel自动生成员工简历表 我们可以用Excel自动提取“员工基本情况登记表”中的信息,生成并打印员工简历表……[编者]前面我们介绍了《Excel常用函数的功能和使用方法》,现在我们学以致用,介绍一系列用这些函数实现的数据统计实例解析。今天我们介绍用Excel自动提取“员工基本情况登记表”中的信息,生成并打印员工简历表。 朋友在做人事工作,常常要打印指定员工的简历表,由于“员工基本情况登记表”是用Excel制作的,我们可以用Excel来自动提取“员工基本情况登记表”中的信息,生成并打印员工简历表,十分方便。文章末尾提供.xls文件供大家下载参考。 本文涉及的Excel函数如下,点击可查看详细信息: 1、IF (Logical,Value_if_true,Value_if_false) 2、ISERROR (value) 3、VLOOKUP (lookup_value,table_array,col_index_num,range_lookup) 应用过程: 1、启动Excel2003(其他版本请仿照操作),打开“员工基本情况登记表”工作簿(如图1)。 2、切换到Sheet2工作表中,仿照图2的样式制作好简历表的框架。

3、分别选中需要填写内容的单元格(除B2单元格外,如D2、F2等),输入公式:=IF(ISERROR(VLOOKUP(B2,简历!A3:K12,*,FALSE)),"",VLOOKUP(B2,简 历!A3:K12,*,FALSE))。 注意:①上述公式中的“*”号,表示“简历”表中,相应的数据所对应的列数:如“出生时间”在第“5”列(参见图1),在J2单元格中输入公式时,将“*”修改为“5”,即: =IF(ISERROR(VLOOKUP(B2,简历!A3:K12,5,FALSE)),"",VLOOKUP(B2,简 历!A3:K12,5,FALSE))。 ②公式的含义是:如果公式“VLOOKUP(B2,简历!A3:K12,5,FALSE)”返回错误(ISERROR),则有显示“空”(""),反之显示公式的返回结果。 4、选中J2单元格,再按住Ctrl键,点击C3单元格,同时选中J2和C3单元格,执行“格式→单元格”命令,打开“单元格格式”对话框(如图3),在“数字”标签中,选中“分类”下面的“日期”选项,然后在右侧选定一种日期类型,确定返回。

电子表格批量插入图片

电子表格批量插入图片 准备工作: 1.整理好所插入的图片: 具体批量插入图片操作: 步骤一: 写入图片路径,做到单元格中图片名称和插入的位置相对应。具体进行如下操作: 1.在图片插入位置写入图片定位公式:

="

" (注意:需要在内容输入位置输入公式(不要在单元格内直接输入公式),公式输入结束后按回车结束公式输入操作。 注意公式的标点符号为英文格式。 将公式写入到图片插入位置单元格后会看到实际表现出来的内容并不是我们所写入的,而是这个=“”之内的内容。) 2.完成第一个位置定位之后,下拉单元格,通过下拉自动填充完成整列的图片定位公式的写入。 步骤一例子: ="
"

步骤二: 步骤二例子: 选中所有公式,复制。ctrl+C+C 在复制状态下,删除b列复制的内容。(如果你不需要再原有位置显示图片,可以不删除,这里删除只是为了给要引用进来的图片腾地方) 删除后,在剪切板中点击之前复制出来的内容。使用选择性粘贴,并选择"unicode文本"方式。之后图片就会出现在每一个所对应的图片插入位置列中。 ps: 1、图片在批量插入后,对存放图片的物理文件夹中再增加图片时,excel里即使有相应的引用也不会自动更新,除非手动刷新,重插。 2、在插入图片前,最好先调整好表格的宽度和行高。太小的话,插入的图片会堆积在一起,数量大时,很难排版。 3、本操作是在excel2003中进行的,2010等版本没有测试。

JAVA导出WORD与EXCEL

package ais.mytest.web; /** * 功能:主要实现数据导出Excel和Word功能* 日期:2008-2-28 */ import ais.basic.service.BasicUtil; import https://www.360docs.net/doc/d811695342.html,mons.file.service.FileService; import ais.framework.web.BaseAction; import ais.mytest.model.Employeer; import ais.mytest.service.IemployeerService; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.text.DecimalFormat; import jxl.write.NumberFormat; import java.util.List; import javax.servlet.ServletOutputStream; import jxl.Cell; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.UnderlineStyle; import jxl.format.VerticalAlignment; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.BoldStyle; import jxl.format.Colour; import jxl.write.Blank; import jxl.write.DateFormat; import jxl.write.DateTime; import https://www.360docs.net/doc/d811695342.html,bel; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableImage; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; //import com.ibm.icu.text.SimpleDateFormat; //import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.Font; import com.lowagie.text.Image;

java批量导出excel格式数据(含每条数据的附件)

,批量导出数据到excel中(包含每条数据对应的附件) 本程序功能功能说明 采用压缩的方法把用户要导出的excel 文件和excle数据中每条数据对应的文件,打包成一个大文件,输出到缓存区,用户通过浏览器来下载这个文件,缺陷是文件过大时,比如几个G大小的附件,ie下载很慢。建议用360等支持断点续传的功能的浏览器来下载。 Excel查看附件采用的是链接方式 详细如下面截图,点击文件链接,可以链接到相对文件位置的文件夹(因为附件可能是多个,采用的都是文件夹的相对链接的方式实现的), 压缩包内存放的文件结构: Excel文件,reportfile(存放附件的文件夹,文件夹结构详细见代码) 每行excel 都对应相对的文件夹(reportfile内的某一个子文件夹和excel的行号相对应),如下截图,红色圈圈链接的就是对应的相应文件夹下的appfile文件夹下的文件: //引入的类 import org.apache.tools.zip.ZipEntry; //把文件写入到压缩对象out import org.apache.tools.zip.ZipOutputStream; import java.io.*; import java.io.OutputStream; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCell; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFCellStyle; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFFont; import https://www.360docs.net/doc/d811695342.html,ermodel.HSSFRichTextString;

java实现导出excel

java实现导出excel 最近有个项目涉及到从java数据库access提取数据到excel中,我搜索了大概有两种办法一种是poi一种是jxl。下面介绍下这两种方法。POI为apache公司的一个子项目,主要是提供一组操作windows文档的Java API.Java Excel俗称jxl是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows 操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web 应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。 就这两者的区别,主要谈下JVM虚拟机内存消耗的情况. 数据量3000条数据,每条60列.JVM虚拟机内存大小64M. 使用POI:运行到2800条左右就报内存溢出. 使用JXL:3000条全部出来,并且内存还有21M的空间. 可想而知,在对内存的消耗方面差距还是挺大的. 也许是由于JXL在对资源回收利用方面做的还挺不错的. 关于两者效率方面,没有研究过,我想这个也是基于大数据量而言的,数据量小的话基本上差别不大,也不难被发觉.但是大的数据量,POI消耗的JVM内存远比JXL消耗的多.但相比提供的功能的话,JXL 又相对弱了点.所以如果要实现的功能比较复杂的情况下可以考虑使用POI,但如果只想生成一些大数据量可以考虑使用JXL,或者CSV也是一个不错的选择,不过CSV并不是真正的excel. jxl.jar概述 通过java操作excel表格的工具类库 支持Excel95-2000的所有版本 生成Excel2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

poi导出excel文件并提示下载

一、导入jar包: poi-3.0.1-FINAL-20070705.jar; poi-3.0-alpha1-20050704.jar; 二、获取List类型数据 三、利用poi生成excel文件 /** * 生成excel文件 * @param tjxxs 写入excel的List数据 * @param xlsName 文件名称 * @param sheetName 内容标题 * @return int */ @SuppressWarnings("deprecation") public int resultSetToExcel(List tjxxs,String xlsName,String sheetName) throws Exception{ if(tjxxs == null || "".equals(tjxxs)){ return 0; } HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); workbook.setSheetName(0,sheetName,HSSFWorkbook.ENCODIN G_UTF_16); HSSFRow row= sheet.createRow((short)0);; HSSFCell cell; //写入各个字段的名称 // for(int i=1;i<=4;i++){ cell = row.createCell((short)(0)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("序号"); cell = row.createCell((short)(1)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue("工作控制号");

使用VBA实现EXCEL批量生成图表并发送

使用EXCEL VBA实现图表批量生成并发送 业务需求 office word2007的邮件合并功能是财务、文秘类工作经常使用的功能之一,该功能可以生成包含可变内容的批量邮件文档,广泛适用于发送工资条、成绩单、通知书等,这里不再赘述。笔者所在单位最近为加强员工考核管理工作力度,提出了一个类似于邮件合并功能,但使用邮件合并功能却不能实现的需求,下面用文字结合图表描述: 1.将员工百分制考核结果批量以图表(折线图)反应出来,每一条员工数据均生成一个类似于下图右侧的图表。 (图1) 2.使用类似于邮件合并方式实现员工考核图表的批量发送,将生成的图表插入邮件正文分别发送给每位员工。 (图2) 解决思路 思路一:使用https://www.360docs.net/doc/d811695342.html,+Sqlserver(或ACCESS等,下同)开发一个网站,设置好权限,允许员工查看自己的反馈结果。 思路评价:可行,但达不到设想中的推送效果。 思路二:使用https://www.360docs.net/doc/d811695342.html,+Sqlserver开发一个系统,内置图表模板,图表基于固定区域数据生成;为每位员工复制一份作为报表,将该员工数据填写到固定区域;将每位员工的报表作为附件发送给每位员工。 思路评价:可行,但开发量大,效果不直观。

思路三:使用https://www.360docs.net/doc/d811695342.html,+Sqlserver开发一个系统,使用VS2008版以上自带控件或第三方控件如dotnetcharting,为每位员工生成一张图片,将该图片插入邮件发送给每位员工。 思路评价:可行,但开发量大。 思路四:使用excel VBA为每位员工生成一张图片,将该图片插入邮件发送给每位员工。这个思路一开始并没有列入考虑范围,主要原因是当时认为在excel中为每位员工生成一个图表是不可能的,即使能生成也没办法脱离excel工作薄,分别和员工对应起来并发送。最终采用本思路,是缘于笔者发现VBA可以非常容易地把图表导出为图片。 思路评价:可行,事实证明,开发量比想象的小很多。 开发环境准备 1.在运行该程序的电脑上安装Office Excel2007或以上版本; 2.正确配置OUTLOOK使之能够正常发送邮件; 3.打开Excel2007新建工作薄,把测试数据输入到sheet1工作表,把工作薄保存到工作目录(为方便后文描述,这里的目录设为“E:\excel-vba”),在该目录下新建“imgfile”子目录,以存放图片。示例数据如下: 注意:附件路径是个公式:=concatenate(“E:\excel-vba\imgfile\”,A1,”.jpg”) 含义是图片以员工姓名命名,这意味着员工姓名不可重复。 4.完成宏安全设置,如图所示: (图3) 实现过程 这个业务需求实现包含两个难点,一是为每位员工生成对应的图片;二是批量发送带图片的邮件。基于这两点,笔者在excel工作薄中设置了两个按钮,编写了两段代码,分别对应上述两个问题。事实上,这两段代码完全可以整合到一起,这里为了方便理解,还是分开介绍。笔者采取代码中加入注释的方式帮助大家理解代码含义。

相关文档
最新文档