java中的数据导出到Excel表中
整个项目中导出数据到.Excel的源码
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import Vo.SellAnimal;
public class FileUtils {
public static final String SEPARATE_FIELD = ",";// 逗号分隔符
public static final String SEPARATE_LINE = "\r\n";// 行分隔符
public static void saveAniaml(SellAnimal animal) {
Date data = new Date(); // 获取系统时间
SimpleDateFormat fmort = new SimpleDateFormat("yyyyMMdd");// 注时间格式
String time = "销售记录" + fmort.format(data) + ".csv";
InputStream in = null; // 输入流,读取文件的内容
try {
in = new FileInputStream(time);//向上转型
if (in != null) {
in.close();
creatfile(time, true, animal);// 在已有文件的后面接着写
}
} catch (FileNotFoundException e) {
creatfile(time, false, animal);// 创建新的文件
} catch (IOException e) {
e.printStackTrace();
}
}
public static void creatfile(String time, boolean object, SellAnimal animal) {
// TODO Auto-generated method stub
BufferedOutputStream out = null;// 字节缓冲流
StringBuffer str = new StringBuffer();
try {
if (object) {
out = new BufferedOutputStream(new FileOutputStream(time, true));
} else {
out = new BufferedOutputStream(new FileOutputStream(time));
String[] filesort = { "宠物名称", "宠物编号", "宠物品种", "宠物数量", "宠物单价(/元)", "总价" };
for (String fieldKey : filesort) {
str.append(fieldKey).append(SEPARATE_FIELD);
}
}
str.append(SEPARATE_LINE);
str.append(animal.getName()).append(SEPARATE_FIELD);
str.append(animal.getNum()).append(SEPARATE_FIELD);
str.append(animal.getPin()).append(SEPARATE_FIELD);
str.append(animal.getShu()).append(SEPARATE_FIELD);
str.append(animal.getPrice()).append(SEPARATE_FIELD);
str.append(animal.getMoney()).append(SEPARATE_FIELD);
String str1 = str.toString();
byte[] shu = str1.getBytes();
for (int i = 0; i < shu.length; i++) {
out.write(shu[i]);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
2019-7-16 在我做的ssm项目中又有了导出文件的需求且这次比较复杂,需要有四层的标题,大标题小标题什么的,先放源码:然后说用到的jar包是poi-3.10;这个自己去官网上找,jar的版本太高的话不支持此源代码,因为有的版本更新了某些变量导致jar包里面根本就没有此源码的某些方法
/**
* excel自定义导出
* @param hAqscTieupsummary
* @param request
* @param response
* @param dataGrid
* @param modelMap
* @return
*/
@RequestMapping(value="/exportEXL",method=RequestMethod.GET)
public String exportEXL(@RequestParam(name="roleId",required=false) Long roleId,
HttpServletRequest request, HttpServletResponse response,
ModelMap modelMap
) {
try {
String dateType = "yyyy";
SimpleDateFormat df = new SimpleDateFormat(dateType);// 设置日期格式
SimpleDateFormat df1 = new SimpleDateFormat("yyyy.MM.dd");// 设置日期格式
// 创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
HSSFRow row = null;
HSSFCell cell = null;
// 建立新的sheet对象(excel的表单) 并设置sheet名字
HSSFSheet sheet = wb.createSheet(df1.format(new Date())+"河北省普通高等学校辅导员信息统计表");
sheet.setDefaultRowHeightInPoints(20);// 设置缺省列高 sheet.setDefaultColumnWidth(20);//设置缺省列宽
//----------------标题样式---------------------
HSSFCellStyle titleStyle3 = wb.createCellStyle(); //标题样式
titleStyle3.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStyle3.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont ztFont = wb.createFont();
ztFont.setItalic(false); // 设置字体为斜体字
ztFont.setColor(Font.COLOR_NORMAL); // 将字体设置为“红色”
ztFont.setFontHeightInPoints((short)16); // 将字体大小设置为18px
ztFont.setFontName("宋体"); // 将“宋体”字体应用到当前单元格上
// ztFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //加粗
// ztFont.setUnderline(Font.U_DOUBLE); // 添加(Font.U_SINGLE单条下划线/Font.U_DOUBLE双条下划线)
// ztFont.setStrikeout(true); // 是否添加删除线
titleStyle3.setFont(ztFont);
//-------------------------------------------
//----------------二级标题格样式----------------------------------
HSSFCellStyle titleStyle2 = wb.createCellStyle(); //表格样式
titleStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER); //左右居中
titleStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
HSSFFont ztFont2 = wb.createFont();
ztFont2.setItalic(false); // 设置字体为斜体字
ztFont2.setColor(Font.COLOR_NORMAL); // 将字体设置为“红色”
ztFont2.setFontHeightInPoints((short)22); // 将字体大小设置为18px
ztFont2.setFontName("黑体"); // 字体应用到当前单元格上
ztFont2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //加粗
// ztFont.setUnderline(Font.U_DOUBLE); // 添加(Font.U_SINGLE单条下划线/Font.U_DOUBLE双条下划线)
// ztFont.setStrikeout(true); // 是否添加删除线
titleStyle2.setFont(ztFont2);
//--------------------------------------------------------------------
//------------------------三级标题-----------
HSSFCellStyle titleStyle4= wb.createCellStyle(); //标题样式
titleStyle4.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStyle4.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
titleStyle4.setWrapText(true);//自动换行
HSSFFont ztFont3 = wb.createFont();
ztFont3.setItalic(false); // 设置字体为斜体字
ztFont3.setColor(Font.COLOR_NORMAL); // 将字体设置为“红色”
ztFont3.setFontHeightInPoints((short)16); // 将字体大小设置为18px
ztFont3.setFontName("黑体"); // 将“宋体”字体应用到当前单元格上
ztFont3.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //加粗
// ztFont.setUnderline(Font.U_DOUBLE); // 添加(Font.U_SINGLE单条下划线/Font.U_DOUBLE双条下划线)
// ztFont.setStrikeout(true); // 是否添加删除线
titleStyle4.setFont(ztFont3);
//----------------------------------------------------------
//----------------单元格样式----------------------------------
HSSFCellStyle cellStyle = wb.createCellStyle(); //表格样式
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
Font cellFont = wb.createFont();
cellFont.setItalic(false); // 设置字体为斜体字
cellFont.setColor(Font.COLOR_NORMAL); // 将字体设置为“红色”
cellFont.setFontHeightInPoints((short)12); // 将字体大小设置为18px
cellFont.setFontName("仿宋_GB2312"); // 字体应用到当前单元格上
//cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
cellStyle.setFont(cellFont);
cellStyle.setWrapText(true);//设置自动换行
//----------------------------------------------------------
// ----------------------创建第一行---------------
// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
row = sheet.createRow(0);
// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
cell = row.createCell(2);
// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 2));
// 设置单元格内容
cell.setCellValue("附件1");
cell.setCellStyle(titleStyle3);
// ----------------------------------------------
// ----------------------创建第二行---------------
// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
row = sheet.createRow(1);
// 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
cell = row.createCell(0);
// 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 19));
// 设置单元格内容
cell.setCellValue("河北省普通高等学校辅导员信息统计表");
cell.setCellStyle(titleStyle2);
// ----------------------------------------------
// ------------------创建第三行(单位、填表日期)---------------------
row = sheet.createRow(2); // 创建第三行
cell = row.createCell(1);
cell.setCellValue("单位名称: ");
cell.setCellStyle(titleStyle3);
sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 3));
cell.setCellStyle(titleStyle3);
cell = row.createCell(4); // 填表时间
sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 5));
cell.setCellValue("学校(盖章)");
cell.setCellStyle(titleStyle3);
// ----------------------------------------------
// ------------------创建表头start---------------------
row = sheet.createRow(3); // 创建第四行
row.setHeightInPoints(30); //设置行高
cell = row.createCell(0);
cell.setCellValue("序号");
cell.setCellStyle(titleStyle4);
sheet.autoSizeColumn(1, true);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(3, 4, 1, 1));
cell = row.createCell(1);
cell.setCellValue("姓名");
sheet.autoSizeColumn(1, true);
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 2, 2));
cell = row.createCell(2);
cell.setCellValue("性别");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 3, 3));
cell = row.createCell(3);
sheet.setColumnWidth(3, 16* 256); //设置列宽,20个字符宽
cell.setCellValue("政治面貌");
sheet.autoSizeColumn(1, true);
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 4, 4));
sheet.setColumnWidth(4, 16 * 256); //设置列宽,20个字符宽
cell = row.createCell(4);
cell.setCellValue("出生年份");
sheet.autoSizeColumn(1, true);
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 5, 5));
sheet.setColumnWidth(5, 16 * 256); //设置列宽,20个字符宽
cell = row.createCell(5);
cell.setCellValue("出生月份");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 6, 6));
sheet.setColumnWidth(6, 16 * 256); //设置列宽,20个字符宽
cell = row.createCell(6);
cell.setCellValue("出生日期");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 7, 7));
cell = row.createCell(7);
sheet.setColumnWidth(7, 30* 256); //设置列宽,20个字符宽
cell.setCellValue("身份证号");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 8, 8));
cell = row.createCell(8);
sheet.setColumnWidth(8, 15 * 256); //设置列宽,20个字符宽
cell.setCellValue("手机号");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 9, 9));
cell = row.createCell(9);
sheet.setColumnWidth(9, 40 * 256); //设置列宽,20个字符宽
cell.setCellValue("所在学校");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 10, 10));
cell = row.createCell(10);
sheet.setColumnWidth(10, 40 * 256); //设置列宽,20个字符宽
cell.setCellValue("所在院系");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 11, 11));
cell = row.createCell(11);
sheet.setColumnWidth(11, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("入职时间");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 12, 12));
cell = row.createCell(12);
sheet.setColumnWidth(12, 16* 256); //设置列宽,20个字符宽
cell.setCellValue("担任为辅导员时间");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 13, 13));
cell = row.createCell(13);
sheet.setColumnWidth(13, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("担任为辅导员时长");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 3, 14, 16));
cell = row.createCell(14);
cell.setCellValue("所带学生数量");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 17, 17));
cell = row.createCell(17);
sheet.setColumnWidth(17, 20 * 256); //设置列宽,20个字符宽
cell.setCellValue("专业技术职务情况");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 18, 18));
cell = row.createCell(18);
sheet.setColumnWidth(18, 20 * 256); //设置列宽,20个字符宽
cell.setCellValue("辅导员岗位职务");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 19, 19));
cell = row.createCell(19);
sheet.setColumnWidth(19, 40 * 256); //设置列宽,20个字符宽
cell.setCellValue("兼任行政职务");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 20, 20));
cell = row.createCell(20);
sheet.setColumnWidth(20, 40 * 256); //设置列宽,20个字符宽
cell.setCellValue("行政职务级别");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 21, 21));
cell = row.createCell(21);
sheet.setColumnWidth(21, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("学历");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 22, 22));
cell = row.createCell(22);
sheet.setColumnWidth(22, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("学位");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 23, 23));
cell = row.createCell(23);
sheet.setColumnWidth(23, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("聘用方式");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(3, 4, 24, 24));
cell = row.createCell(24);
cell.setCellValue("备注");
cell.setCellStyle(titleStyle4);
//--------------------------- 创建第五行--------------------
row = sheet.createRow(4);
cell = row.createCell(0);
cell.setCellStyle(titleStyle4);
cell = row.createCell(1);
cell.setCellStyle(titleStyle4);
cell = row.createCell(2);
cell.setCellStyle(titleStyle4);
cell = row.createCell(3);
cell.setCellStyle(titleStyle4);
cell = row.createCell(4);
cell.setCellStyle(titleStyle4);
cell = row.createCell(5);
cell.setCellStyle(titleStyle4);
cell = row.createCell(6);
cell.setCellStyle(titleStyle4);
cell = row.createCell(7);
cell.setCellStyle(titleStyle4);
cell = row.createCell(8);
cell.setCellStyle(titleStyle4);
cell = row.createCell(9);
cell.setCellStyle(titleStyle4);
cell = row.createCell(10);
cell.setCellStyle(titleStyle4);
cell = row.createCell(11);
cell.setCellStyle(titleStyle4);
cell = row.createCell(12);
cell.setCellStyle(titleStyle4);
cell = row.createCell(13);
cell.setCellStyle(titleStyle4);
cell = row.createCell(14);
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(4, 4, 14, 14));
cell = row.createCell(14);
sheet.setColumnWidth(14, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("专科生");
cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(4, 4, 15, 15));
cell = row.createCell(15);
sheet.setColumnWidth(15, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("本科生");
cell.setCellStyle(titleStyle4);
// cell = row.createCell(1);
// cell.setCellStyle(titleStyle4);
sheet.addMergedRegion(new CellRangeAddress(4, 4, 16, 16));
cell = row.createCell(16);
sheet.setColumnWidth(16, 16 * 256); //设置列宽,20个字符宽
cell.setCellValue("研究生");
cell.setCellStyle(titleStyle4);
cell = row.createCell(17);
cell.setCellStyle(titleStyle4);
cell = row.createCell(18);
cell.setCellStyle(titleStyle4);
cell = row.createCell(19);
cell.setCellStyle(titleStyle4);
cell = row.createCell(20);
cell.setCellStyle(titleStyle4);
cell = row.createCell(21);
cell.setCellStyle(titleStyle4);
cell = row.createCell(22);
cell.setCellStyle(titleStyle4);
cell = row.createCell(23);
cell.setCellStyle(titleStyle4);
cell = row.createCell(24);
cell.setCellStyle(titleStyle4);
//-------------------------表头end---------------------
/**
*
* 查询数据代码需要更改填写
*
*
*/
//
/**
这里是需要查询所需要的数据放到bean中以方便导出使用
这里的代码我删掉了,就是查询数据,总到一个bean里面
*/
//
for(int i=0;i<daochu.size();i++){
List<Object> data = new ArrayList<Object>();
daoChubean chubean=new daoChubean();
chubean=daochu.get(i);
data.add(i+1);
data.add(chubean.getName());
int rowNum = 5+i; //从第四行开始
row = sheet.createRow(rowNum);
for (int j = 0; j < data.size(); j++) { //将数据添加到单元格中
// System.out.println(data.get(j));
sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, j, j));
cell = row.createCell(j);
cell.setCellValue(""+data.get(j)+"");
cell.setCellStyle(cellStyle);
}
}
// 输出Excel文件
OutputStream output = response.getOutputStream();
response.reset();
String fileName="河北省普通高等学校辅导员信息统计表"; //用这个可以在前端页面上自主选择下载地址到本地的硬盘,
response.setHeader("Content-Disposition","attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) ); //filename = 文件名
response.setContentType("application/msexcel");
wb.write(output);
output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
java中的数据导出到Excel表中的更多相关文章
- vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表
vlookup函数基本使用--如何将两个Excel表中的数据匹配:excel表中vlookup函数使用方法将一表引到另一表 一.将几个学生的籍贯匹配出来‘ 二.使用查找与引用函数 vlookup 三. ...
- python 用xlwt包把数据导出到excel表中
def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'shee ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
- Qt中将QTableView中的数据导出为Excel文件
如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...
- WPF-将DataGrid控件中的数据导出到Excel
原文:WPF-将DataGrid控件中的数据导出到Excel 导出至Excel是非常常见,我们可以用很多类库,例如Aspose.NOPI.Interop,在这里我们使用微软自家的工具.我的WPF绑定的 ...
- 如何将存储在MongoDB数据库中的数据导出到Excel中?
将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...
- 将Datagridview中的数据导出至Excel中
首先添加一个模块ImportToExcel,并添加引用 然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...
- 28、python3.7(windows)将ORACLE11gR2中的数据取出写入excel表
28.1.下载python的离线扩展模块: 1.windows下python的离线扩展模块下载地址为: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 提示: ...
- hbase使用MapReduce操作4(实现将 HDFS 中的数据写入到 HBase 表中)
实现将 HDFS 中的数据写入到 HBase 表中 Runner类 package com.yjsj.hbase_mr2; import com.yjsj.hbase_mr2.ReadFruitFro ...
随机推荐
- 使用xheditor时 cloneRange错误 ext.net
使用ext.net 加 xheditor时,一直报 cloneRange错误. 于是 按照说明但独使用xheditor ,检查无错,正常使用, 因此排除版本问题. <ext:panel ru ...
- 代码漏洞扫描描述Cross Site History Manipulation解决办法[dongcoder.com]
代码漏洞扫描 漏洞描述:Cross Site History Manipulation 简要描述:产品的行为差异或发送不同的反应,在某种程度上暴露了与安全性相关的产品状态,例如特定的操作是否成功.可能 ...
- WIMLIB-CAPTURE捕获说明
WIMLIB-CAPTURE捕获说明1.如果捕获目录Y:\windows,那么[ExclusionList]字段里面不能有\windows,否则什么都不能捕捉,但是可以有下面的子目录例如\window ...
- TensorFlow-GPU+cuda8+cudnn6+anaconda安装遇到的版本错误
第一遍装的时候是cuda10+cudnn5.1这个诡异的组合,失败 卸载cuda就是把所有的NVIDIA有关的应用都删掉,c盘文件也都删掉,不用留. 第二遍是cuda8+cudnn5.1.版本还是对不 ...
- quartz 使用问题,小坑
1.quartz时区 ITrigger trigger1 = TriggerBuilder.Create() .WithIdentity(triggerName, group).StartNow() ...
- WPF 播放声音 百度文字转声音
https://developer.baidu.com/vcast google浏览器可下载 https://www.cnblogs.com/maruko/archive/2013/04/19/WP ...
- TNS-12541: TNS: 无监听程序 解决方案
转自 感谢 https://www.cnblogs.com/yx007/p/6732012.html 问题描述 在用PL/SQL Developer连接Oracle 11g时报错“ORA-12 ...
- 亚马逊EC2服务器申请+NODE服务器部署+阿里云域名申请+SSL证书使用
最近,由于项目需要,自己申请了一台亚马逊用于部署网站测试,在使用期间,发现网上没有一篇非常完整的文章讲解从服务器申请到域名解析,SSL证书申请的整个流程.所以自己总结一下,以供大家学习! 一.亚马逊E ...
- java利用反射交换两个对象中的字段相同的字段值
有时候我们的两个对象字段都是一样的,只有极少的区别,想要把一个对象字段的值,赋值给另外一个对象值 然后传给另外一个方法使用,但是这个字段太多,一个一个的复制太过繁琐. 这时候利用反射解决这个问题. c ...
- VS2015创建类库项目后添加不了WPF资源字典,窗口,用户控件处理办法
打开项目工程文件在PropertyGroup标签最后加上下面3行: <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FA ...