JAVA导出EXCEL类(TSV格式)
导出excel工具类及导出导入
导出excel⼯具类及导出导⼊package com.shinho.dc3.master.util;
import com.github.pagehelper.util.StringUtil;
import com.shinho.dc3.master.exception.BusinessException;
import com.shinho.dc3.master.req.ExcelSet;
import ermodel.HSSFWorkbook;
import ermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import ermodel.*;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
* Copyright (C), 2018-2019, 烟台欣和企业⾷品有限公司
* fileName ExcelUtil
JAVA实现导出excel功能,封装通用导出工具类
JAVA实现导出excel功能,封装通⽤导出⼯具类
引⼊maven
<!--excel导出-->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<!--⼯具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>[4.1.12,)</version>
</dependency>
<dependency>
<groupId>mons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
java生成excel模板导出
java生成excel模板导出
getTimeStr方法:
public static String getTimeStr(Date date, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.format(date);
}
createExcelModel方法全部代码:
public static HSSFWorkbook createExcelModel()throws Exception{ HSSFWorkbook wb = new HSSFWorkbook();//创建工作薄
HSSFSheet sheet = wb.createSheet("任务模板");//新建工作表
HSSFRow row = sheet.createRow((short)0);//创建行
row.setHeightInPoints((short)20);//设置excel单元格高度
HSSFRichTextString text = null;
HSSFFont font = wb.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFCellStyle style = wb.createCellStyle();
style.setFont(font);
java导出Excel格式设置
jxltest.javaimport java.io.File;import java.io.FileOutputStream;import jxl.Workbook;import jxl.format.BorderLineStyle;import jxl.format.VerticalAlignment;import bel;import jxl.write.Number;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class jxltest{public static void main(String [] args){String templatePath = "c:\\template.xls";//模板文件名String outFileStr = "c:\\test.xls";//测试文件名(输出文件)try{//创建小字体:Arial,大小为8号,非粗体,非斜体WritableFont wf = new WritableFont(WritableFont.ARIAL, 8,WritableFont.NO_BOLD, false);//字体颜色为红色wf.setColour(jxl.format.Colour.RED);//创建大字体:Arial,大小为18号,粗体,非斜体WritableFont Bwf = new WritableFont(WritableFont.ARIAL, 18,WritableFont.NO_BOLD, false);Bwf.setColour(jxl.format.Colour.RED);//创建单元格格式:设置水平对齐为向右对齐jxl.write.WritableCellFormat RwcfF = new jxl.write.WritableCellFormat(wf);RwcfF.setAlignment(jxl.write.Alignment.RIGHT);//创建单元格格式:设置水平对齐为向左对齐jxl.write.WritableCellFormat LwcfF = new jxl.write.WritableCellFormat(wf);LwcfF.setAlignment(jxl.write.Alignment.LEFT);//创建单元格格式:设置水平对齐为居中对齐jxl.write.WritableCellFormat CwcfF = new jxl.write.WritableCellFormat(wf);CwcfF.setAlignment(jxl.write.Alignment.CENTRE);jxl.write.WritableCellFormat CBwcfF = new jxl.write.WritableCellFormat(Bwf);CBwcfF.setAlignment(jxl.write.Alignment.CENTRE);//设置垂直对齐为居中对齐CBwcfF.setVerticalAlignment(VerticalAlignment.CENTRE);//设置顶部边框线为实线(默认是黑色--也可以设置其他颜色)CBwcfF.setBorder(jxl.format.Border.TOP, BorderLineStyle.MEDIUM);//设置右边框线为实线CBwcfF.setBorder(jxl.format.Border.RIGHT, BorderLineStyle.MEDIUM);//设置顶部框线为实线CBwcfF.setBorder(jxl.format.Border.BOTTOM, BorderLineStyle.MEDIUM);jxl.write.WritableCellFormat CMwcfF = new jxl.write.WritableCellFormat(wf);CMwcfF.setAlignment(jxl.write.Alignment.LEFT);//设置垂直对齐为向上对齐CMwcfF.setVerticalAlignment(VerticalAlignment.TOP);CMwcfF.setWrap(true);File tFile = new File(templatePath);//创建模板文件对象File outFile = new File(outFileStr);//创建输出文件对象//创建文件输出流对象FileOutputStream os = new FileOutputStream(outFile);//模板工作簿对象Workbook tBook = Workbook.getWorkbook(tFile);//输出工作簿对象WritableWorkbook wbook = Workbook.createWorkbook(os, tBook);//在坐标为(0,0)的单元格写入"测试"字符串使用8号红色小字体,向右对齐wsheet.addCell(new Label(0, 0, "test", RwcfF));//在坐标为(1,1)的单元格写入"test"字符串使用8号红色小字体,向左对齐wsheet.addCell(new Label(1, 1, "test", LwcfF));//在坐标为(2,2)的单元格写入"测
java实现导出Excel(跨行跨列)
java实现导出Excel(跨行跨列)
在Java中,可以使用Apache POI库来实现导出Excel文件,并且可以实现跨行和跨列的功能。Apache POI是一个开源的Java库,可以处理Microsoft Office格式的文档,包括Excel。
以下是使用Apache POI库实现导出Excel文件的步骤:
1. 首先,需要引入Apache POI依赖。可以在Maven或Gradle中添加以下依赖项:
```xml
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
2. 创建一个Workbook对象,该对象代表一个Excel文件:
```java
Workbook workbook = new XSSFWorkbook(;
```
3. 创建一个Sheet对象,该对象代表Excel文件中的一个工作表:
java excel导入导出总结
java excel导入导出总结
Java是一种常用的编程语言,它具有很多强大的功能和库,可以用来处理各种各样的任务。其中之一就是处理Excel文件的导入和导出操作。在本文中,我们将总结一下Java中如何进行Excel的导入和导出操作,并介绍一些常用的技巧和注意事项。
一、Excel的导入操作
在Java中,我们可以使用Apache POI库来进行Excel文件的导入操作。首先,我们需要在项目中引入Apache POI的相关依赖。然后,我们可以通过以下步骤来实现Excel的导入:
1. 创建一个Workbook对象,用于表示Excel文件。
2. 根据文件路径或输入流创建一个InputStream对象,用于读取Excel文件的内容。
3. 根据文件的扩展名(xls或xlsx),创建一个合适的Workbook实现类的对象。
4. 通过Workbook对象的getSheet()方法获取一个Sheet对象,用于表示Excel文件中的一个工作表。
5. 遍历Sheet对象的每一行和每一列,读取单元格中的数据。
注意事项:
- 在读取单元格数据时,我们需要根据单元格的类型来选择合适的读取方法。例如,如果单元格中的数据是字符串类型,我们可以使
用getStringCellValue()方法来读取。
- 在处理日期类型的数据时,我们可以使用DateUtil类来将Excel 中的日期值转换为Java中的Date对象。
- 在遍历行和列时,我们可以使用for循环或迭代器来实现。
二、Excel的导出操作
与Excel的导入操作类似,我们同样可以使用Apache POI库来进行Excel文件的导出操作。下面是导出Excel文件的一般步骤:
javaexcel导出(可自定义导出列)
javaexcel导出(可⾃定义导出列)
import java.beans.PropertyDescriptor;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import ng.reflect.Field;
import ng.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import ermodel.HSSFCell;
import ermodel.HSSFCellStyle;
import ermodel.HSSFClientAnchor;
import ermodel.HSSFComment;
import ermodel.HSSFFont;
import ermodel.HSSFPatriarch;
import ermodel.HSSFRichTextString;
import ermodel.HSSFRow;
import ermodel.HSSFSheet;
java导出excel
设置excel的导出格式因为ms word和excel的文档都支持html文本格式,因此可以先用word或excel做好模版,另存为Web页,然后将该html改成jsp,将数据部分动态填入即可,不用很辛苦的调整格式word页面只要在jsp头设置如下指令:<%@page c %>excel如下:<%@page c %>使用这种方式客户端必须安装有office软件,用户访问时将在ie中直接用word或excel打开该页面。此方法优势是模板设计、调整方便,无需在服务器端使用复杂的POI或jxl技术,也无需在客户端使用ActiveX控件技术,更安全、方便,轻松实现较好的打印效果。 ///////////////////////////////////////////*******************************************************************************************试试看从网页中把表格直接生成excel,虽然不是直接从sql到excel,不过反而更加方便而且人性化。。网上倒是找到了不少的资料,发现一段javascript的功能实现代码,很不错:var elTable = document.getElementById("tb"); var oRangeRef = document.body.createTextRange(); oRangeRef.moveToElementText( elTable ); oRangeRef.execCommand( "Copy" ); var appExcel = new ActiveXObject( "Excel.Application" ); appExcel.Visible = true; appExcel.Workbooks.Add().Worksheets.Item(1).Paste(); appExcel = null;实现功能就是把id为tb的表格内的数据都生成为excel,我试试了可行,但是放到服务器来运行就是script error的提示,然后网上到处求问,也找了百度空间的几位高手朋友问了下,可是还是不得其法。。不过还是很感谢他们的热心帮助。没办法,我只能用别的方法来实现了,其实满喜欢上面的这个javascript的功能的,比较人性化。。可惜我黔驴技穷,无法用上它,哎!~既然我帮客户用jsp写的程序,那么我就还是用jsp来实现这个功能吧。。于是找到了这么一个方法:原文出自:.tw/viewitem.jsp?itemid=0000000065***************************************************************************************************一、将网页资料以excel报表以线上浏览方式呈现 xls651.jsp原始码如下 <%@ page c %><%
response.setHeader("Content-disposition","inline; filename=test1.xls");
//以上这行设定传送到前端浏览器时的档名为test1.xls
//就是靠这一行,让前端浏览器以为接收到一个excel档
%>Excel档案呈现方式姓名身份证字号生日李玟N1111111111900/11/12梁静如N2222222221923/10/1张惠妹N3333333331934/12/18二、将网页资料以e
Java导入导出Excel工具类ExcelUtil
Java导⼊导出Excel⼯具类ExcelUtil
导出就是将List转化为Excel(listToExcel)
导⼊就是将Excel转化为List(excelToList)
导⼊导出中会出现各种各样的问题,⽐如:数据源为空、有重复⾏等,我⾃定义了⼀个ExcelException异常类,⽤来处理这些问题。
异常类
导出⼯具类:
public Map<String,Object> exportMessageExcelFile(String title, String[] headers,List dossierList, OutputStream out, String pattern)
{
boolean flag = true;
Map<String,Object> map = new HashMap<String,Object>();
StringBuffer messageFile = new StringBuffer();
// 声明⼀个⼯作薄
HSSFWorkbook workbook = new HSSFWorkbook();
// ⽣成⼀个表格
HSSFSheet sheet = workbook.createSheet(title);
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 15);
// ⽣成⼀个样式
HSSFCellStyle style = workbook.createCellStyle();
java生成excel(多级表头)导出
java⽣成excel(多级表头)导出
依赖⼯具包
<dependencies>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.5</version>
</dependency>
</dependencies>
该⼯具包是对 Apache POI包的分装
private void export(HttpServletResponse response, String fileName, List<?> projects, List<SummarizeDownloadColumns> columns) throws IOException { ExcelWriter bigWriter = ExcelUtil.getBigWriter();
//创建⼀⾏空表头占个位置
bigWriter.writeHeadRow(new LinkedList());
//创建需要展⽰的的⼆级表头,{filedName,中⽂名}
int lastCol = 0;
for (int i = 0; i < columns.size(); i++) {
if (columns.get(i).getChildren() != null) {
for (int j = 0; j < columns.get(i).getChildren().size(); j++) {
用java实现Excel导入导出(easyExcel)
⽤java实现Excel导⼊导出(easyExcel)
前⼏个⽉系统主要功能完结撒花,只剩下后台系统的报表。为满⾜客户的需求,我需要将⽤户给的excel表数据导⼊到系统中,开始我没有怎么关注的这个业务,我却花费了很久很久的时间。客户的需求⼀直在变,excel表格也⼀直在变。我原本使⽤的是poi,从⼀开始的莫名其妙的报错,数据类型的转换错误,到各种的异常抓取,我的代码也越来越长。这时候我寻找到了⼀个很⽅便且简单的⼯具easyExcel。
测试前准备
⾸先映⼊excel⼯具的maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.1</version>
</dependency>
这⾥先准备下实体对象⽅便后⾯操作,这⾥写两个字节码去接受,是我⾃⼰的使⽤感受。导出的数据是从系统⾥来,我们能保持系统内的数据的正确性,但是要导⼊的数据是来⾃⽤户,我们不能保证其正确性,所以统⼀拿字符串接受,这⾥就不会存在数字等转换异常了。
//导出使⽤的实体
@Data
public class Demo {
@ExcelProperty(value = "⽤户名")
private String username;
@ExcelProperty(value = "密码")
private String password;
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);
java导出excel通用方法
java导出excel通⽤⽅法⾸先需要引⼊的jar包:
正式代码了。
import java.io.FileOutputStream;
import java.io.OutputStream;
import .URLEncoder;
import javax.servlet.http.HttpServletResponse;
import ermodel.HSSFCell;
import ermodel.HSSFCellStyle;
import ermodel.HSSFFont;
import ermodel.HSSFRow;
import ermodel.HSSFSheet;
import ermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;
@SuppressWarnings( { "deprecation" })
public class Test46 {
public static void main(String[] args) throws Exception {
String sheetName = "⽤车统计表单";
String titleName = "⽤车申请数据统计表";
String fileName = "⽤车申请统计表单";
int columnNumber = 3;
int[] columnWidth = { 10, 20, 30 };
java中的export方法实现导出excel文件
java中的export⽅法实现导出excel⽂件
⽬录
1.export函数
2.导出列名
3.export实现⽅法
4.前端对接
5.前端代码
1.export函数
//导出⽂件接⼝
public String export(){
return this.myExport(exportList);
}
2.导出列名
private String myExport(List<BusinessDept> list){
com.bronzesoft.power.tools.json.JSONObject info = new com.bronzesoft.power.tools.json.JSONObject();
try{
List<String> headList = new ArrayList<String>(Arrays.asList("年", "⽉", "部门","部门负责⼈","经营值","收⼊", "⽀出","填报⼯时","标准⼯时","经营参数")); Commonutil.export(list,headList,"部门经营总览导出");
info = Commonutil.setInfo(info,"部门经营总览导出");
}catch (Exception e){
LogUtil.error(this.getClass().getName()+".exportExcel()", e);
}
return info.toString();
}
3.export实现⽅法
⾸先,理解⼀下⼀个Excel的⽂件的组织形式,⼀个Excel⽂件对应于⼀个workbook(XSSFWorkbook),⼀个workbook可以有多个sheet(XSSFSheet)组成,⼀个sheet是由多个row(XSSFRow)组成,⼀个row是由多个cell(XSSFCell)组成。
java 使用jxl技术excel文件进行导入和导出实验用到的知识与技术
java 使用jxl技术excel文件进行导入和导出实验用
到的知识与技术
Java是一种流行的编程语言,而JXL技术是一种用于处理Excel文件的Java库。在本文中,我们将一步一步地介绍如何使用JXL技术导入和导出Excel文件。我们将从JXL技术的概述开始,然后讨论如何导入Excel文件,接着是如何导出Excel文件。
JXL技术是一个基于Java的开源库,用于读取、写入和操作Microsoft Excel文件。它提供了一组API,可以方便地处理Excel文件中的单元格、行和列。不仅可以读取现有的Excel文件,还可以创建新的Excel文件并在其中写入数据。JXL技术支持Excel的各种版本,包括xls和xlsx格式。
接下来,我们将讨论如何导入Excel文件。首先,我们需要在项目中引入JXL库的依赖。在Maven项目中,我们可以将以下依赖添加到pom.xml 文件中:
xml
net.sourceforge.jexcelapi
jxl
2.6.12
一旦我们引入了JXL依赖,我们就可以使用它的API来导入Excel文件。首先,我们需要创建一个Workbook对象,它代表整个Excel文件。我们可以使用Workbook类的静态方法getWorkbook()来打开一个现有的Excel文件,例如:
java
Workbook workbook = Workbook.getWorkbook(new
File("path/to/excel.xls"));
在Workbook对象上,我们可以执行各种操作,例如获取特定的工作表、读取单元格的值等。例如,我们可以使用以下代码读取第一个工作表的
javaexcel动态字段导出的方法
javaexcel动态字段导出的方法
### Java Excel动态字段导出的方法
在Java应用程序中,Excel文件的动态字段导出是一项常见需求,尤其是在报表生成和数据分析的场景下。以下将详细介绍如何使用Java实现动态字段导出到Excel的方法。
#### 1.准备工作
- 确保你的项目中引入了Apache POI库,这是一个强大的Java库,用于处理Microsoft Office文档。
- 创建一个Excel模板,如果你需要固定某些表头或者样式。
#### 2.实现动态字段导出的步骤
##### 步骤1:定义数据模型
首先,定义一个Java对象来表示Excel表中的数据模型。
```java
public class DataModel {
private String fieldName1;
private int fieldNumber2;
// 其他字段...
// 省略getter和setter方法
}
```
##### 步骤2:创建Excel工作簿
```java
import ermodel.*;
import ermodel.XSSFWorkbook; Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("数据");
Row headerRow = sheet.createRow(0);
```
##### 步骤3:设置表头
动态设置表头,可以根据实际需求添加或减少字段。
```java
String[] headers = {"字段1", "字段2", "字段3"};
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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++) {
for(int j=0; j < model.getColumnCount(); j++) {
out.write(model.getValueAt(i,j).toString()+"\t");
}
out.write("\n");
}
out.close();
JOptionPane.showMessageDialog(null, "EXCEL文件导出成功!","成功",RMATION_MESSAGE);
}
}
}