package com.zuidaima.excel.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; /**
* @描述 负责将数据集(表单数据)导出Excel文件
* @author */
public class ExcelUtil { /**
* 类实例
*/
private static ExcelUtil export; /**
* excel文档
*/
private HSSFWorkbook workbook; /**
* excel sheet
*/
private HSSFSheet sheet; /**
* 字节流
*/
private OutputStream fileOutput; /**
* 声明私有构造方法
*/
private ExcelUtil() { } /**
* 产生一个excel导出工具类实例(单例模式)
*
* @return excel导出工具类对象
*/
public static ExcelUtil newInstance() {
if (export == null)
export = new ExcelUtil();
return export;
} /**
* @功能描述 设置excel文档(单表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @param filePath
* excel文件地址
* @throws Exception
* 异常往上抛出
*/
public void exportExcel(String tName, ArrayList<String> tHeader, ArrayList<ArrayList<Object>> tValue,
Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle, String filePath) throws Exception { try {
// 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // 单个表单赋值和样式
this.setSheet(tName, tHeader, tValue, tHeaderStyle, tValueStyle);
// 导出excel文件
this.export(workbook, filePath); } catch (Exception e) {
e.printStackTrace(); }
} /**
* @功能描述 设置excel文档(单表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
public InputStream exportExcelToStream(String tName, ArrayList<String> tHeader,
ArrayList<ArrayList<Object>> tValue, Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle)
throws Exception { // 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // 单个表单赋值和样式
this.setSheet(tName, tHeader, tValue, tHeaderStyle, tValueStyle); // 导出excel文件
return export(workbook); } /**
* @功能描述 设置excel文档(多表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @param filePath
* excel文件地址
* @throws Exception
* 异常往上抛出
*/
public void exportExcel(ArrayList<String> tName, ArrayList<ArrayList<String>> tHeader,
ArrayList<ArrayList<ArrayList<Object>>> tValue, ArrayList<Map<String, Short>> tHeaderStyle,
ArrayList<Map<String, Short>> tValueStyle, String filePath) throws Exception { try {
// 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // for循环完成文档各个表单的赋值和样式
for (int i = 0; i < tName.size(); i++) {
this.setSheet(tName.get(i), tHeader.get(i), tValue.get(i), tHeaderStyle.get(i), tValueStyle.get(i)); // 单个表单赋值和样式
} // 导出excel文件
this.export(workbook, filePath); } catch (Exception e) {
}
} /**
* @功能描述 设置excel文档(多表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
public InputStream exportExcelToStream(ArrayList<String> tName, ArrayList<ArrayList<String>> tHeader,
ArrayList<ArrayList<ArrayList<Object>>> tValue, ArrayList<Map<String, Short>> tHeaderStyle,
ArrayList<Map<String, Short>> tValueStyle) throws Exception { // 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // for循环完成文档各个表单的赋值和样式
for (int i = 0; i < tName.size(); i++) {
this.setSheet(tName.get(i), tHeader.get(i), tValue.get(i), tHeaderStyle.get(i), tValueStyle.get(i)); // 单个表单赋值和样式
}
return export(workbook);
} /**
* @功能描述 设置excel表单
* @创建人
* @创建时间 2011-5-27 下午02:23:02
* @param tName
* excel表名
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
private void setSheet(String tName, ArrayList<String> tHeader, ArrayList<ArrayList<Object>> tValue,
Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle) throws Exception { try {
// 创建表单并设置其表名
sheet = workbook.createSheet(tName); // 创建表单行
HSSFRow tRow = sheet.createRow(0); // 赋值和样式(此时,为表头行)
tRow = this.setTRow(tRow, tHeader, tHeaderStyle); // for循环完成表单数据的赋值和样式(除表头)
for (int i = 0; i < tValue.size(); i++) {
tRow = sheet.createRow(i + 1); // 获取表单行 tRow = this.setTRow(tRow, tValue.get(i), tValueStyle); // 设置当前行的数据和样式
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* @功能描述 设置excel表单行数据
* @创建人
* @创建时间 2011-5-27 下午02:22:30
* @param row
* excel表单行
* @param tRow
* excel表单行数据
* @param tHeaderStyle
* excel表头样式
* @return 设置后的的表单行
* @throws Exception
* 异常往外抛出
*/
@SuppressWarnings("unchecked")
private HSSFRow setTRow(HSSFRow row, ArrayList tRow, Map<String, Short> tHeaderStyle) throws Exception { try {
// 获取单元格样式
HSSFCellStyle cellStyle = this.setCellStyle(tHeaderStyle);
// 声明单元格
HSSFCell cell = null; // for循环完成该表单某行各个列赋值和样式
for (int i = 0; i < tRow.size(); i++) {
cell = row.createCell(i); // 获取每列单元格
cell.setCellStyle(cellStyle); // 设置样式 sheet.autoSizeColumn((short) i); // 设置单元格自适应
Object obj = tRow.get(i); // 获取当前列的值
// 判断对象所属类型, 并强转
if (obj instanceof Integer) // 当数字时
cell.setCellValue((Integer) obj);
if (obj instanceof String) // 当为字符串时
cell.setCellValue((String) obj);
if (obj instanceof Boolean) // 当为布尔时
cell.setCellValue((Boolean) obj);
if (obj instanceof Date) // 当为时间时
cell.setCellValue((Date) obj);
if (obj instanceof Calendar) // 当为时间时
cell.setCellValue((Calendar) obj);
if (obj instanceof Double) // 当为小数时
cell.setCellValue((Double) obj);
}
} catch (Exception e) {
e.printStackTrace();
}
return row; // 返回
} /**
* @功能描述 设置单元格样式
* @创建人
* @创建时间 2011-5-27 下午02:21:40
* @param fontStyle
* 样式Map集合
* @return 设置后单元格样式
* @throws Exception
* 异常往外抛出
*/
private HSSFCellStyle setCellStyle(Map<String, Short> fontStyle) throws Exception { // 声明单元格样式
HSSFCellStyle cellStyle = null;
try {
// 创建字体
HSSFFont font = workbook.createFont();
// 设置字体样式
// 设置字体颜色(红色为:HSSFFont.COLOR_RED 这里表示short类型 10)
font.setColor(fontStyle.get("color"));
// 设置字体形体(宽体为:HSSFFont.BOLDWEIGHT_BOLD 700) -- 粗体
font.setBoldweight(fontStyle.get("weight")); // 创建单元格样式
cellStyle = workbook.createCellStyle();
// 添加字体样式
cellStyle.setFont(font); } catch (Exception e) {
e.printStackTrace();
}
return cellStyle; // 返回
} /**
* @功能描述 导出Excel
* @创建人
* @创建时间 2011-5-27 下午02:57:37
* @param workbook
* excel文档
* @param filePath
* xls文件地址
* @throws Exception
* 异常往外抛出
*/
private void export(HSSFWorkbook workbook, String filePath) throws Exception { try {
// 根据指定xls文件创建文件字符流
fileOutput = new FileOutputStream(filePath);
// 将文档写入指定文件
workbook.write(fileOutput); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭流, 释放资源
fileOutput.close();
} catch (IOException e) {
e.printStackTrace();
;
}
}
} /**
* @功能描述 获取流
* @创建人
* @创建时间 2011-5-27 下午02:57:37
* @param workbook
* excel文档
* @throws Exception
* 异常往外抛出
*/
private InputStream export(HSSFWorkbook workbook) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
try {
workbook.write(baos);
} catch (IOException e) {
e.printStackTrace();
}
byte[] ba = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(ba);
return bais;
} finally {
// 关闭流, 释放资源
baos.close();
}
}
}

package com.zuidaima.excel.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; /**
* @描述 负责将数据集(表单数据)导出Excel文件 */
public class ExcelUtil { /**
* 类实例
*/
private static ExcelUtil export; /**
* excel文档
*/
private HSSFWorkbook workbook; /**
* excel sheet
*/
private HSSFSheet sheet; /**
* 字节流
*/
private OutputStream fileOutput; /**
* 声明私有构造方法
*/
private ExcelUtil() { } /**
* 产生一个excel导出工具类实例(单例模式)
*
* @return excel导出工具类对象
*/
public static ExcelUtil newInstance() {
if (export == null)
export = new ExcelUtil();
return export;
} /**
* @功能描述 设置excel文档(单表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @param filePath
* excel文件地址
* @throws Exception
* 异常往上抛出
*/
public void exportExcel(String tName, ArrayList<String> tHeader, ArrayList<ArrayList<Object>> tValue,
Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle, String filePath) throws Exception { try {
// 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // 单个表单赋值和样式
this.setSheet(tName, tHeader, tValue, tHeaderStyle, tValueStyle);
// 导出excel文件
this.export(workbook, filePath); } catch (Exception e) {
e.printStackTrace(); }
} /**
* @功能描述 设置excel文档(单表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
public InputStream exportExcelToStream(String tName, ArrayList<String> tHeader,
ArrayList<ArrayList<Object>> tValue, Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle)
throws Exception { // 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // 单个表单赋值和样式
this.setSheet(tName, tHeader, tValue, tHeaderStyle, tValueStyle); // 导出excel文件
return export(workbook); } /**
* @功能描述 设置excel文档(多表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @param filePath
* excel文件地址
* @throws Exception
* 异常往上抛出
*/
public void exportExcel(ArrayList<String> tName, ArrayList<ArrayList<String>> tHeader,
ArrayList<ArrayList<ArrayList<Object>>> tValue, ArrayList<Map<String, Short>> tHeaderStyle,
ArrayList<Map<String, Short>> tValueStyle, String filePath) throws Exception { try {
// 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // for循环完成文档各个表单的赋值和样式
for (int i = 0; i < tName.size(); i++) {
this.setSheet(tName.get(i), tHeader.get(i), tValue.get(i), tHeaderStyle.get(i), tValueStyle.get(i)); // 单个表单赋值和样式
} // 导出excel文件
this.export(workbook, filePath); } catch (Exception e) {
}
} /**
* @功能描述 设置excel文档(多表单)
* @创建人
* @创建时间 2011-5-27 下午02:25:58
* @param tName
* excel表名集
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
public InputStream exportExcelToStream(ArrayList<String> tName, ArrayList<ArrayList<String>> tHeader,
ArrayList<ArrayList<ArrayList<Object>>> tValue, ArrayList<Map<String, Short>> tHeaderStyle,
ArrayList<Map<String, Short>> tValueStyle) throws Exception { // 当excel文档不存在时创建
workbook = new HSSFWorkbook(); // for循环完成文档各个表单的赋值和样式
for (int i = 0; i < tName.size(); i++) {
this.setSheet(tName.get(i), tHeader.get(i), tValue.get(i), tHeaderStyle.get(i), tValueStyle.get(i)); // 单个表单赋值和样式
}
return export(workbook);
} /**
* @功能描述 设置excel表单
* @创建人
* @创建时间 2011-5-27 下午02:23:02
* @param tName
* excel表名
* @param tHeader
* excel表头数据集
* @param tValue
* excel表单数据集(除表头)
* @param tHeaderStyle
* excel表头单元格样式
* @param tValueStyle
* excel表单数据单元格样式(除表头)
* @throws Exception
* 异常往上抛出
*/
private void setSheet(String tName, ArrayList<String> tHeader, ArrayList<ArrayList<Object>> tValue,
Map<String, Short> tHeaderStyle, Map<String, Short> tValueStyle) throws Exception { try {
// 创建表单并设置其表名
sheet = workbook.createSheet(tName); // 创建表单行
HSSFRow tRow = sheet.createRow(0); // 赋值和样式(此时,为表头行)
tRow = this.setTRow(tRow, tHeader, tHeaderStyle); // for循环完成表单数据的赋值和样式(除表头)
for (int i = 0; i < tValue.size(); i++) {
tRow = sheet.createRow(i + 1); // 获取表单行 tRow = this.setTRow(tRow, tValue.get(i), tValueStyle); // 设置当前行的数据和样式
}
} catch (Exception e) {
e.printStackTrace();
}
} /**
* @功能描述 设置excel表单行数据
* @创建人
* @创建时间 2011-5-27 下午02:22:30
* @param row
* excel表单行
* @param tRow
* excel表单行数据
* @param tHeaderStyle
* excel表头样式
* @return 设置后的的表单行
* @throws Exception
* 异常往外抛出
*/
@SuppressWarnings("unchecked")
private HSSFRow setTRow(HSSFRow row, ArrayList tRow, Map<String, Short> tHeaderStyle) throws Exception { try {
// 获取单元格样式
HSSFCellStyle cellStyle = this.setCellStyle(tHeaderStyle);
// 声明单元格
HSSFCell cell = null; // for循环完成该表单某行各个列赋值和样式
for (int i = 0; i < tRow.size(); i++) {
cell = row.createCell(i); // 获取每列单元格
cell.setCellStyle(cellStyle); // 设置样式 sheet.autoSizeColumn((short) i); // 设置单元格自适应
Object obj = tRow.get(i); // 获取当前列的值
// 判断对象所属类型, 并强转
if (obj instanceof Integer) // 当数字时
cell.setCellValue((Integer) obj);
if (obj instanceof String) // 当为字符串时
cell.setCellValue((String) obj);
if (obj instanceof Boolean) // 当为布尔时
cell.setCellValue((Boolean) obj);
if (obj instanceof Date) // 当为时间时
cell.setCellValue((Date) obj);
if (obj instanceof Calendar) // 当为时间时
cell.setCellValue((Calendar) obj);
if (obj instanceof Double) // 当为小数时
cell.setCellValue((Double) obj);
}
} catch (Exception e) {
e.printStackTrace();
}
return row; // 返回
} /**
* @功能描述 设置单元格样式
* @创建人
* @创建时间 2011-5-27 下午02:21:40
* @param fontStyle
* 样式Map集合
* @return 设置后单元格样式
* @throws Exception
* 异常往外抛出
*/
private HSSFCellStyle setCellStyle(Map<String, Short> fontStyle) throws Exception { // 声明单元格样式
HSSFCellStyle cellStyle = null;
try {
// 创建字体
HSSFFont font = workbook.createFont();
// 设置字体样式
// 设置字体颜色(红色为:HSSFFont.COLOR_RED 这里表示short类型 10)
font.setColor(fontStyle.get("color"));
// 设置字体形体(宽体为:HSSFFont.BOLDWEIGHT_BOLD 700) -- 粗体
font.setBoldweight(fontStyle.get("weight")); // 创建单元格样式
cellStyle = workbook.createCellStyle();
// 添加字体样式
cellStyle.setFont(font); } catch (Exception e) {
e.printStackTrace();
}
return cellStyle; // 返回
} /**
* @功能描述 导出Excel
* @创建人
* @创建时间 2011-5-27 下午02:57:37
* @param workbook
* excel文档
* @param filePath
* xls文件地址
* @throws Exception
* 异常往外抛出
*/
private void export(HSSFWorkbook workbook, String filePath) throws Exception { try {
// 根据指定xls文件创建文件字符流
fileOutput = new FileOutputStream(filePath);
// 将文档写入指定文件
workbook.write(fileOutput); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭流, 释放资源
fileOutput.close();
} catch (IOException e) {
e.printStackTrace();
;
}
}
} /**
* @功能描述 获取流
* @创建人
* @创建时间 2011-5-27 下午02:57:37
* @param workbook
* excel文档
* @throws Exception
* 异常往外抛出
*/
private InputStream export(HSSFWorkbook workbook) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
try {
workbook.write(baos);
} catch (IOException e) {
e.printStackTrace();
}
byte[] ba = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(ba);
return bais;
} finally {
// 关闭流, 释放资源
baos.close();
}
}
}

java 通过Apache poi导出excel代码demo实例的更多相关文章

  1. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  2. java中使用poi导出excel表格数据并且可以手动修改导出路径

    在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下

  3. apache POI 导出excel相关方法

    apache POI 操作excel无比强大.同时有操作word和ppt的接口. 下面讲解poi中常用方法. 1,设置列宽 HSSFSheet sheet = wb.getSheetAt(0); sh ...

  4. Java使用Apache POI进行Excel导入和导出

    Manve依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> ...

  5. Java中用Apache POI生成excel和word文档

    概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...

  6. Apache POI导出excel表格

    项目中我们经常用到导出功能,将数据导出以便于审查和统计等.本文主要使用Apache POI实现导出数据. POI中文文档 简介 ApachePOI是Apache软件基金会的开放源码函式库,POI提供A ...

  7. apache poi导出excel报表

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.POI为"P ...

  8. java使用Apache POI操作excel文件

    官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...

  9. 使用org.apache.poi导出Excel表格

    public HSSFWorkbook MakeExcel(List<TransactionLogVO> logList) { // SimpleDateFormat sdf = new ...

随机推荐

  1. struts-2-spring-2-jpa-ajax

    http://struts.apache.org/docs/struts-2-spring-2-jpa-ajax.html

  2. WebLogic Server 多租户资源管理(resource consume manager)

    WebLogic Server基于分区管理heap Size,CPU利用率等,具体的设置如下, 首先需要在setDomainEnv.cmd文件中java_option中加入如下字段 -XX:+Unlo ...

  3. webpack配置:图片处理、css分离和路径问题

    一.CSS中的图片处理: 1.首先在网上随便找一张图片,在src下新建images文件夹,将图片放在文件夹内 2.在index.html中写入代码:<div id="pic" ...

  4. oracle数据库修改编码

    (1)SYSTEM  用户登录SQLPLUS        SYS是sysdba用户,不能直接登录 (2)SYSDBA登录        CONN  / as sysdba; (3)查看数据库字符集 ...

  5. [转载]深入理解java多态性

    FROM:http://blog.csdn.net/thinkGhoster/article/details/2307001 昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整 ...

  6. 本地搭建ELK系统

    ELK系统主要由三部分组成,各自是elasticsearch.logstash.kibana. ELK系统收到推送过来的日志后.首先由logstash解析日志中的字段,分解成一个一个的关键字. ela ...

  7. Jquery获取当前行的数据

    取表格当前行数据js代码: Java代码 $(function() { $(".myclass").each(function(){     var tmp=$(this).chi ...

  8. JAVA加解密 -- Base64加解密

    Base64算法实现:可以将任意的字节数组数据,通过算法,生成只有(大小写英文.数字.+./)(一共64个字符)内容表示的字符串数据. private static final String str ...

  9. Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)

    在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层 ...

  10. css - margin-padding

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...