导航:首页 > 网络数据 > poi导出大数据excel文件

poi导出大数据excel文件

发布时间:2023-02-21 22:01:59

㈠ POI动态生成Excel

项目功能里要求能够将展示的报表导出excel,因为报表的数据都是动态从list传进来的,所以使用了POI技术来动态构建excel文件
网络里说POI是介个样子的
“ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给java程序对MicrosoftOffice格式档案读和写的功能”
简单来说就是通过它的API可以进行创建/读取文档,sheet,行列单元格等操作,也可以设置文档的各个样式。
刚接触这个任务的时候查了很多资料,最后主要是参考了这篇文章,程序复制粘贴就跑得通,对POI的整个理解可以得到很好地提升。
详解JAVA POI导出EXCEL报表的操作(包括各种格式及样式的实现)
然后参考着就实现了项目里要求的样子啦

=======================================================
网络中的示例附上作为下次使用的备忘。
创建Excel 文档

示例1将演示如何利用Jakarta POI API 创建Excel 文档。

示例1程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java .io.FileOutputStream;

public class CreateXL {

/** Excel 文件要存放的位置,假定在D盘下*/

public static String outputFile="D:\test.xls";

public static void main(String argv[]){

try{

// 创建新的Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 在Excel工作簿中建一工作表,其名为缺省值

// 如要新建一名为"效益指标"的工作表,其语句为:

// HSSFSheet sheet = workbook.createSheet("效益指标");

HSSFSheet sheet = workbook.createSheet();

// 在索引0的位置创建行(最顶端的行)

HSSFRow row = sheet.createRow((short)0);

//在索引0的位置创建单元格(左上端)

HSSFCell cell = row.createCell((short) 0);

// 定义单元格为字符串类型

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文档中的数据

示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。

示例2程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

import java .io.FileInputStream;

public class ReadXL {

/** Excel文件的存放位置。注意是正斜线*/

public static String fileToBeRead="D:\test1.xls";

public static void main(String argv[]){

try{

// 创建对Excel工作簿文件的引用

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

// 创建对工作表的引用。

// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")

HSSFSheet sheet = workbook.getSheet("Sheet1");

// 也可用getSheetAt(int index)按索引引用,

// 在Excel文档中,第一张工作表的缺省索引是0,

// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);

// 读取左上端单元

HSSFRow row = sheet.getRow(0);

HSSFCell cell = row.getCell((short)0);

// 输出单元内容,cell.getStringCellValue()就是取所在单元的值

System.out.println("左上端单元是: " + cell.getStringCellValue());

}catch(Exception e) {

System.out.println("已运行xlRead() : " + e );

}

}

}

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置 字体和单元格的格式,然后再应用这些格式:

1、创建字体,设置其为红色、粗体:

HSSFFont font = workbook.createFont();

font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

2、创建格式

HSSFCellStyle cellStyle= workbook.createCellStyle();

cellStyle.setFont(font);

3、应用格式

HSSFCell cell = row.createCell((short) 0);

cell.setCellStyle(cellStyle);

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

cell.setCellValue("标题 ");

处理WORD文档

import java .io.*;

import org.apache.poi.hwpf.extractor.WordExtractor;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFCell;

public class TestPoi {

public TestPoi() {

}

public static void main(String args[]) throws Exception

{

FileInputStream in = new FileInputStream ("D:\a.doc");

WordExtractor extractor = new WordExtractor();

String str = extractor.extractText(in);

//System.out.println("the result length is"+str.length());

System.out.println(str);

}

}

搜集链接 方便以后查阅
POI操作Excel常用方法总结

自己封装的poi操作excel工具

㈡ 急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”

两个原因:

1.你的excel模版本身有问题,可以尝试新建一个模版。

2.你的excel使用了一些POI不支持的函数。

解决办法:

另存是由excel重写了完整的文件,可以解决问题。

关闭文件例子:

FileOutputStream os = new FileOutputStream("workbook.xls");

wb.write(os);

os.close();

㈢ poi如何通过模板导出excel

共分为六部完成根据模板导出excel操作:
第一步、设置excel模板路径(setSrcPath)
第二步、设置要生成excel文件路径(setDesPath)
第三步、设置模板中哪个Sheet列(setSheetName)
第四步、获取所读取excel模板的对象(getSheet)
第五步、设置数据(分为6种类型数据:setCellStrValue、setCellDateValue、 setCellDoubleValue、setCellBoolValue、setCellCalendarValue、setCellRichTextStrValue)
第六步、完成导出 (exportToNewFile)

㈣ javapoi数据导出成excel如何才能指定文件输出路径 现在是知道E盘路径 怎么弄成弹框选择路径

点导出的时候,把所需要的数据传入导出界面JSP,这是我自己拼接的,代码如下

<%@ page contentType="application/vnd.ms-excel; charset=utf-8" %>
<%@ page language="java" import="java.util.*,com.expect.bean.Admin" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String xlsname = request.getAttribute("xlsname").toString();
String fileName = xlsname+".xls";
byte[] yte = fileName.getBytes("GB2312");
String unicoStr = new String(yte, "ISO-8859-1");
response.setHeader("Content-disposition","attachment;filename="+unicoStr);
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
#tableinfo tr td{
text-align: center;font-size: 13px;border: 1px solid #64ABD6;
}
#tableinfo{width: 100%;border-collapse: collapse;height: 30px;line-height: 30px;}
</style>
</head>

<body >

<table cellspacing="0" id="tableinfo" >
<tr>
<td style="text-align: center;font-size:30px;font-weight: bold;" id="titletd" colspan="8">
<%=xlsname %>电费表<br/>
</td>
</tr>

<tr>
<td style="text-align: center;" id="titletd" colspan="2">
用户名:
</td>
<td style="text-align: center;" id="titletd">
分厂:
</td>
<td style="text-align: center;" id="titletd">
住宅区:
</td>
<td style="text-align: center;" id="titletd" >
楼层:
</td>
<td style="text-align: center;" id="titletd" >
具体住址:
</td>
<td style="text-align: center;" id="titletd" >
上次度数:
</td>
<td style="text-align: center;" id="titletd" >
本次度数:
</td>
<td style="text-align: center;" id="titletd" >
操作时间:
</td>
</tr>
</table>

<%
List list = (List)request.getAttribute("list");
if(list!=null && list.size()>0){
for(int i=0;i<list.size();i++){
Map m = (Map)list.get(i);
String userName = m.get("userName")==null || m.get("userName").equals("") ? "" : m.get("userName").toString();
String branch = m.get("branch")==null || m.get("branch").equals("") ? "" : m.get("branch").toString();
String upTown = m.get("upTown")==null || m.get("upTown").equals("") ? "" : m.get("upTown").toString();
String storey = m.get("storey")==null || m.get("storey").equals("") ? "" : m.get("storey").toString();
String home = m.get("home")==null || m.get("home").equals("") ? "" : m.get("home").toString();
String totalSum = m.get("totalSum")==null || m.get("totalSum").equals("") ? "" : m.get("totalSum").toString();
String enterTime = m.get("enterTime")==null || m.get("enterTime").equals("") ? "" : m.get("enterTime").toString();
String upMonthCount = m.get("upMonthCount")==null || m.get("upMonthCount").equals("") ? "" : m.get("upMonthCount").toString();

%>
<table cellspacing="0" id="tableinfo" >
<tr>
<td style="text-align: center;" id="titletd" colspan="2">
<%=userName %>
</td>
<td style="text-align: center;" id="titletd" >
<%=branch %>
</td>
<td style="text-align: center;" id="titletd" >
<%=upTown %>
</td>
<td style="text-align: center;" id="titletd" >
<%=storey %>
</td>
<td style="text-align: center;" id="titletd" >
<%=home %>
</td>
<td style="text-align: center;" id="titletd" >
<%=totalSum %>
</td>
<td style="text-align: center;" id="titletd" >
<%=upMonthCount %>
</td>
<td style="text-align: center;" id="titletd" >
<%=enterTime %>
</td>
</tr>
</table>
<%
}
}
%>
</body>
</html>

㈤ 关于Poi 大数据量Excel 导出时 文件过大的问题 怎么解决

建议要导excel前excel已经支持cvs文件
解释:cvs文件显示式xls显示式并且显示式执行效率要高于xls文件额cvs文件存储回数据直接直答接用英文逗号隔xls存储cell所量数据情况都导cvs文件
备注:数据建议查询导要性导否则效率低
-

㈥ 我使用poi导出Excel报表时候当数据量超过6w条,我想分成多个sheet导出,不知道怎么实现跪求高手解答一下1

建议大于65534条后生成txt 文件 或者另建一个Sheet
WritableSheet sheet=book.createSheet(“第二页”,1);

㈦ 关于POI运用于WEB导出Excel,出现文件格式或者文件扩展名无效

1.调用win+R的快捷键运行。输入regedit并单击ok。

㈧ 关于Poi 大数据量Excel 导出时 文件过大的问题 怎么解决

建议不要导出excel,当前excel中已经有支持cvs文件。
解释:cvs文件的显示方式和版xls的显示方式一样,并权且此显示方式的执行效率要高于xls文件的额,因为cvs文件存储的是数据直接直接用英文逗号分隔,xls是存储的cell。所以在大量数据的情况下,都是导出为cvs文件。
备注:如果数据过多的话,建议可以分多次查询导出,不要一次性导出,否则效率会很低。
-

㈨ poi导出Excel问题

你的方法应该是没有问题,404错误只是你的跳转没响应,估计跳转页面路径错了。没有你的配置文件不好说

㈩ poi导出excel时数据大于6W如何新建一个sheet(JAVA)

是的,excel是有60000行的限制。如果你能够正确的导出excel,说明你已经掌握了excel的操作。我提供一种思路供你参考:判断你要导出数据的行数,以6万为基数,进行程序判断。可以通过循环的方式,计算出需要的sheet数量,每次循环建立一个sheet,然后把数据导入。关键的问题在于创建新的sheet和,计算导出的数据。希望对你有所帮助吧。

阅读全文

与poi导出大数据excel文件相关的资料

热点内容
2k15修改器win10 浏览:407
不同的作曲软件工程文件互通吗 浏览:649
项目文件中哪些受控 浏览:214
华为手机录音文件怎么导出 浏览:358
pack文件怎么打开 浏览:782
win10怎么随意拖桌面图标 浏览:947
aspnetmvc代码 浏览:818
怎样测试网络的稳定性 浏览:79
itunes怎么查看安装的app 浏览:685
驱动式编程是什么 浏览:288
iphone6看片地址 浏览:972
网站百度快照导航怎么变样子了 浏览:792
离线传输文件有哪些方法 浏览:286
烧程序 浏览:9
win10登录windows账户 浏览:917
企业收到网络广告费如何记账 浏览:313
易班app的运营思路是什么 浏览:720
中国艺术微课怎么下载app 浏览:134
软件内的小说文件在哪里 浏览:200
会议需要准备的文件有哪些 浏览:480

友情链接