- 浏览: 479606 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
a115962262:
谢谢小伙伴,还好有你,拿回去试试,要兼容windos和linu ...
hyperic-sigar-1.6.4 java获取软硬件相关信息 -
东辉VS风行:
东辉VS风行 写道写的很好,没看懂的就要自己多看些书,别喷楼主 ...
extjs4 异步树的写法 -
东辉VS风行:
写的很好,没看懂的就要自己多看些书,别喷楼主 我感觉楼主写的 ...
extjs4 异步树的写法 -
546968662:
博主给解释一下异步请求时为什么会带上节点参数id
extjs4 异步树的写法 -
amwons:
谢谢了!这东西还真不好找。
hyperic-sigar-1.6.4 java获取软硬件相关信息
1、java导出txt通用类
2、java导出excel通用类 package com.anxiesoft.report;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.anxiesoft.util.DateUtil;
/**
* 导出txt通用类
*
* @author Administrator
*
*/
public class ExportTxtUtil {
private static Map<String, String> attrMap;
static {
attrMap = new HashMap<String, String>();
attrMap.put("betweenProperty", "\t\t");
attrMap.put("betweenRecord", "\r\n");
}
private static List<String> properties;
private static String[] title;
public static List<String> getProperties() {
if (properties == null)
return new ArrayList<String>();
return properties;
}
public static void setProperties(List<String> properties) {
ExportTxtUtil.properties = properties;
}
public static String[] getTitle() {
return title;
}
public static void setTitle(String[] title) {
ExportTxtUtil.title = title;
}
public static void transferModelToTxt(File file, List<Object> list) {
// 获取属性间的分隔符
String betweenPropery = (String) attrMap.get("betweenProperty");
// 获取记录间的分隔符
String betweenRecord = attrMap.get("betweenRecord").toString();
BufferedOutputStream buff = null;
FileOutputStream outSTr = null;
try {
outSTr = new FileOutputStream(file);
buff = new BufferedOutputStream(outSTr);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < title.length; i++) {
if (i == title.length - 1) {
sb.append(title[i] + betweenRecord);
} else {
sb.append(title[i] + betweenPropery);
}
}
for (Object obj : list) {
Class<?> clz = obj.getClass();
Field[] fields = clz.getDeclaredFields();
if (properties != null && properties.size() > 0) {
for (String property : properties) {
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
String fieldName = field.getName();
if (property.equals(fieldName)) {
// 把属性名的第一个字母变成大写
String firstLetter = fieldName.substring(0, 1)
.toUpperCase();
String getMethodName = "get" + firstLetter
+ fieldName.substring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = clz.getMethod(getMethodName,
new Class[] {});
// 调用原对象的getXXX()方法
Object value = getMethod.invoke(obj,
new Object[] {});
if (value instanceof Date) {
String val = DateUtil
.convertDate2String((Date) value,
"yyyy-MM-dd HH:mm:ss");
sb.append(val + betweenPropery);
}
// 把为null的用""代替
if (value == null) {
value = "";
}
if (properties.size() == i) {
sb.append(value);
} else {
sb.append(value + betweenPropery);
}
break;
}
}
}
}
sb.substring(0, sb.length() - 2);
sb.append(betweenRecord);
}
buff.write(sb.toString().getBytes("UTF-8"));
buff.flush();
buff.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
buff.close();
outSTr.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.NumberFormats;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* 导出Excel通用类
*
* 请先设置表头和属性列表,然后调用transferModelToExcel
*
* @author Administrator
*
*/
public class ExportExcelUtil {
private static NumberFormat nf = null;
private static WritableCellFormat wcfN = null;
private static WritableCellFormat wcfNText = null;
private static String[] title;
private static List<String> properties;
public static List<String> getProperties() {
if (properties == null)
return new ArrayList<String>();
return properties;
}
public static void setProperties(List<String> properties) {
ExportExcelUtil.properties = properties;
}
public static String[] getTitle() {
return title;
}
public static void setTitle(String[] title) {
ExportExcelUtil.title = title;
}
/**
* 格式话数字
*
* @return
*/
private static NumberFormat getNf() {
if (nf == null) {
return nf = new NumberFormat("#.##");
} else {
return nf;
}
}
/**
* 数字格式化样式
*
* @return
* @throws WriteException
*/
private static WritableCellFormat getWcfN() throws WriteException {
if (wcfN == null) {
wcfN = new WritableCellFormat(getNf());
wcfN.setBorder(Border.ALL, BorderLineStyle.THIN);
return wcfN;
} else {
return wcfN;
}
}
/**
* 文本格式化样式
*
* @return
* @throws WriteException
*/
private static WritableCellFormat getWcfNText() throws WriteException {
if (wcfNText == null) {
wcfNText = new WritableCellFormat(NumberFormats.TEXT);
wcfNText.setBorder(Border.ALL, BorderLineStyle.THIN);
return wcfNText;
} else {
return wcfNText;
}
}
/**
* 填充第i个Sheet
*
* @param i
* @param objects
* @param ws
* @throws WriteException
* @throws RowsExceededException
*/
private static void fillSheet(int i, Object[][] objects, WritableSheet ws)
throws WriteException, RowsExceededException {
for (int j = 0; j < objects.length; j++) {
for (int j2 = 0; j2 < objects[j].length; j2++) {
String temp = "";
if (objects[j][j2] != null)
temp = objects[j][j2].toString();
if (objects[j][j2] instanceof Double) {
jxl.write.Number labelNF = new jxl.write.Number(j2, j,
Double.parseDouble(temp), getWcfN());
ws.addCell(labelNF);
} else {
Label labelC2 = new Label(j2, j, temp, getWcfNText());
ws.addCell(labelC2);
}
}
}
}
/**
* 计算有几个工作簿,加上表头是100000001行
*
* @param title
* 该Excel的表头
* @param data
* 需要保存的数据
* @return <Object[][]保存一个工作簿的数据
*/
private static List<Object[][]> countSheet(String[] heading, Object[][] data) {
List<Object[][]> list = new ArrayList<Object[][]>();
int SheetCount = data.length / 100000000 + 1;
if (data.length == 0) {
Object[][] newStr = new Object[1][heading.length];
newStr[0] = heading;
list.add(newStr);
} else {
int oi = 0;
for (int j = 0; j < SheetCount; j++) {
Object[][] newStr = null;
if (j + 1 == SheetCount) {
newStr = new Object[data.length % 100000000 + 1][heading.length];
} else {
newStr = new Object[100000001][heading.length];
}
newStr[0] = heading;
for (int i = 1; i < 100000001; i++) {
newStr[i] = data[oi];
oi++;
if (oi == data.length)
break;
}
list.add(newStr);
}
}
return list;
}
/**
* 设置首行冻结
*
* @param ws
*/
private static void setIndex(WritableSheet ws, int index) {
ws.getSettings().setVerticalFreeze(index);
}
private static Object[][] list2ObjectArray(List list) {
Object[][] result = new Object[list.size()][title.length];
try {
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Object obj = list.get(i);
Class<?> clz = obj.getClass();
Field[] fields = clz.getDeclaredFields();
if (properties != null && properties.size() > 0) {
for (int j = 0; j < properties.size(); j++) {
String property = (String) properties.get(j);
for (int k = 0; k < fields.length; k++) {
Field field = fields[k];
String fieldName = field.getName();
if (fieldName.equals(property)) {
// 把属性名的第一个字母变成大写
String firstLetter = fieldName.substring(0,
1).toUpperCase();
String getMethodName = "get" + firstLetter
+ fieldName.substring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = clz.getMethod(
getMethodName, new Class[] {});
// 调用原对象的getXXX()方法
Object value = getMethod.invoke(obj,
new Object[] {});
result[i][j] = value;
break;
}
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void transferModelToExcel(File file, List<Object> list)
throws IOException, RowsExceededException, WriteException {
List<Object[][]> dataList = countSheet(title, list2ObjectArray(list));
WritableWorkbook wwb = Workbook.createWorkbook(file);
for (int i = 0; i < dataList.size(); i++) {
Object[][] objects = dataList.get(i);
WritableSheet ws = wwb.createSheet("Sheet" + (i + 1), i);
setIndex(ws, 1);
fillSheet(i, objects, ws);
}
wwb.write();
wwb.close();
}
}
发表评论
-
Java问题排查
2023-12-28 12:46 1./configure --disable-md2man ... -
chrome iframe显示重定向次数过多问题
2022-01-06 12:43 31. 确认谷歌浏览器版本,点击谷歌浏览器右上角—帮助—关于 ... -
JDK现场问题排查
2021-07-04 10:51 891、案例1 现象: 现场tomcat占用CPU接近10 ... -
java生成Cron表达式
2021-05-10 22:49 1029import java.util.Date; pub ... -
keepalived安装配置实践
2021-05-11 00:11 304Keepalived启动后以后会有一个主进程Master, ... -
ngix代理转发配置
2021-05-11 00:10 199./configure --user=nginx --gr ... -
java 压缩与解压缩
2021-05-11 00:17 426import java.io.*; import jav ... -
判断网络IP端口是否可连接
2021-06-07 21:22 1064import org.apache.commons.lan ... -
curl使用小结
2021-06-07 21:22 19# 发送post请求,数据为json格式 curl ht ... -
排查JAVA内存问题的常用方法
2021-05-11 00:10 202排查Java内存问题,不要着急重启,保留现场。 jr ... -
HorizontalPodAutoscalerExample
2021-06-09 15:12 271/** * Copyright (C) 2015 Re ... -
PowerMock测试service
2021-07-03 19:13 1242service层调用 public class I ... -
eclipse 远程调试
2021-07-03 19:13 56程序运行在linux下,编辑catalina.sh文件,添 ... -
spring redis集成
2021-06-27 11:54 407pom.xml <dependency> ... -
SpringMVC 大文件上传踩过的坑
2021-07-03 19:14 766使用spring mvc的MultipartFile ... -
java执行本地命令
2021-07-03 19:12 443ProcessBuilder processBuild ... -
JVM参数调优
2021-07-10 11:59 2-Xms1536m; -Xmx1536m; - ... -
spring mvc
2021-06-27 11:53 5681.JAVAEE体系结构 2.什 ... -
java基本类型与字节数据之间的转换
2021-06-26 11:12 378public class PrimitiveTypeCon ... -
linux查看so库依赖关系
2021-06-25 07:55 255nm -D dh.so 查看dh.so依赖的so库 ld ...
相关推荐
导出Excel文件利用apache的poi第三方包,可在阿帕奇官网下载(最新版本为3.8,支持office2010)。解压文件后,只需要把项目导入到eclipse,再将hibernate.cfg.xml里连接Oracle的URL和用户名、密码更改下。参考entity...
在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...
使用Java POI,可以将图片导出到Excel中,这需要使用到Drawings类和Picture类。首先,需要创建一个Drawings对象,然后使用Drawings对象的addPicture方法将图片添加到Excel中。 3. 使用Java POI下载Excel文件 在示例...
在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。而带图片的Excel导出则增加了复杂性,因为涉及到二进制数据的处理和Excel特定格式的支持。以下是一些关于如何在Java中实现...
总结来说,Java导出数据到Excel文件支持多级表头的过程涉及以下步骤: 1. 引入Apache POI库。 2. 创建`SXSSFWorkbook`和`SXSSFSheet`对象。 3. 设计和创建多级表头,一级表头在前,二级表头在其下。 4. 从数据库查询...
在Java编程中,导出数据到Excel是一种常见的需求,特别是在数据分析、报表生成或者数据交换的场景下。Apache POI是一个强大的库,专为处理Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。本篇文章将...
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
Java导出数据到Excel文件中,支持多页签形式,如通过Java导出一个名为“各部门人员列表”,然后在文件中有三个页签,分别为“研发部”、“综合部”、“财务部”。其中这三个页签里面的数据就是通过Java导出到Excel...
2. **导出Excel文档**: 使用XSSFWorkbook类处理.xlsx文件,而HSSFWorkbook处理.xls文件。创建工作簿、工作表、行和单元格,然后设置值和格式。例如,创建一个简单的Excel表格: ```java XSSFWorkbook workbook ...
本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...
java导出复杂Excel内容数据动态循环
在Java编程中,导出复杂的Excel模板是一项常见的需求,尤其在数据分析、报表生成或数据交换等场景中。本文将深入探讨如何使用Java实现这一功能,包括选用的库、步骤、以及处理复杂模板的关键技巧。 首先,Java中最...
java 导出数据到excel 之 WritableWorkbook
Java操作数据库并导出Excel是一项常见的任务,尤其在数据分析、报表生成或数据迁移等领域。这里主要涉及两个核心技术:Java数据库连接(JDBC)用于与数据库交互,以及Apache POI库用于处理Excel文件。 首先,Java...
java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错
在Java开发中,将数据导出到Excel是一种常见的需求,特别是在数据分析、报表生成或数据交换等场景。Excel作为Microsoft Office套件的一部分,以其强大的表格处理功能和良好的兼容性深受用户喜爱。下面,我们将深入...
java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入
Java导出Excel是Java开发中常见的需求,尤其是在数据处理和报表生成方面。Apache POI库是Java领域中广泛使用的工具,它允许开发者读写Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入讲解...
java实现excel批量导出功能的所有代买实现逻辑,及源码。适合初级、中级、高级程序员,用户一看就明白
在Java编程中,导出Excel数据是常见的任务,特别是在数据处理和报表生成的场景下。本教程将聚焦于使用jxl库来实现这一功能。jxl是一个流行且强大的Java库,能够读写Microsoft Excel文件。这里我们将介绍如何利用jxl...