java 调用jdbc 实现excel和csv的导入和导出
- jdbc 的连接
- 实体类
- package com.gpdi.mdata.web.manage.database.data;
public class DBQueryData {
private String url;
private String dbName;
private String user;
private String passwd;
private String tableName;
private String where;- public String getUrl() {
return url;
}- public void setUrl(String url) {
this.url = url;
}- public String getDbName() {
return dbName;
}- public void setDbName(String dbName) {
this.dbName = dbName;
}- public String getUser() {
return user;
}- public void setUser(String user) {
this.user = user;
}- public String getPasswd() {
return passwd;
}- public void setPasswd(String passwd) {
this.passwd = passwd;
}- public String getTableName() {
return tableName;
}- public void setTableName(String tableName) {
this.tableName = tableName;
}- public String getWhere() {
return where;
}- public void setWhere(String where) {
this.where = where;
}- @Override
public String toString() {
return "DBQueryData{" +
"url='" + url + '\'' +
", dbName='" + dbName + '\'' +
", user='" + user + '\'' +
", passwd='" + passwd + '\'' +
", tablename='" + tableName + '\'' +
", where='" + where + '\'' +
'}';
}
}
- JDBC封装
- package com.gpdi.mdata.web.manage.database.utils;
import com.gpdi.mdata.web.manage.database.data.DBQueryData;- import java.sql.Connection;
import java.sql.DriverManager;- public class ConnectionManager {
private static Connection conn=null;
public ConnectionManager(){};
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {- e.printStackTrace();
}
}
public static Connection getConnection(DBQueryData dbQueryData){
try {
if(conn==null||conn.isClosed()) {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://"+dbQueryData.getUrl()+"/"+dbQueryData.getDbName();
String user = dbQueryData.getUser();
String password = dbQueryData.getPasswd();- Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库链接成功");
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库链接失败");
}- return conn;
- }
public static void main(String[] args) {- }
- }
- 进行数据库查询,得到结果以对象方式存诸以便方便调用
- package com.gpdi.mdata.web.manage.database.utils;
import com.gpdi.mdata.web.manage.database.data.DBList;
import com.gpdi.mdata.web.manage.database.data.DBQueryData;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;- import java.sql.*;
import java.util.*;- //jdbc链接数据库,获取表名,字段名和数据
public class DBhepler {
private Connection conn=null;
private PreparedStatement ps=null;
public DBList search(DBQueryData dbQueryData) throws Exception {
DBList dbList=new DBList();
String sql="";- conn = ConnectionManager.getConnection(dbQueryData);
if(dbQueryData.getWhere()==null||dbQueryData.getWhere().equals("")){
sql="select * from "+dbQueryData.getTableName();
}
else {
sql="select * from "+dbQueryData.getTableName()+" where="+dbQueryData.getWhere();
}
// 获取所有表名- //Statement statement = conn.createStatement();
PreparedStatement pst =conn.prepareStatement(sql);
ResultSet resultSet=pst.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
//定义一个list去接受字段名
List<String> list=new ArrayList<>();
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
String columnName = metaData.getColumnName(i + 1);
int type = metaData.getColumnType(i + 1);
if (Types.INTEGER == type) {
// int
} else if (Types.VARCHAR == type) {
// String
}
list.add(columnName);
System.out.print(columnName + "\t");
}
dbList.setRowTitle(list);- List<List<String>> valueList=new ArrayList<>();
int j=0;- System.out.println();
// 获取数据
while (resultSet.next()) {
List<String> colList=new ArrayList<>();
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
//System.out.print(resultSet.getString(i + 1) + "\t");
colList.add(resultSet.getString(i + 1));- }
valueList.add(colList);- j++;
}
dbList.setColCount(metaData.getColumnCount());
dbList.setRowCount(j);
dbList.setValueList(valueList);- pst.close();
conn.close();
//pst.close();
// conn.close();
return dbList;
}
@RequestMapping
public Map<String, List<String>> SQLInsert(String [] zdName,List<List<Object>> list,DBQueryData dbQueryData){- Map<String, List<String>> resultMap=new HashMap<>();
List<String>countList=new ArrayList<>();
List<String> suList=new ArrayList();
List<String> fiList=new ArrayList();- //sql
int filed=0;
int success=0;
for(int li=0;li<list.size()-1;li++){
//sql语句前部分
StringBuffer sql=new StringBuffer();
sql.append("insert into file_1 (");
for (int zd=0;zd<zdName.length-1;zd++){
//zdName[zd]=zdList.get(zd).toString();
sql.append(zdName[zd]+",");
}- sql.append(zdName[zdName.length-1]+") ");
//sql后部分
List valueList=list.get(li);
StringBuffer sqlEnd=new StringBuffer();
sqlEnd.append(" values(");
for (int v=0;v<valueList.size()-1;v++){
sqlEnd.append("'"+valueList.get(v)+"'"+",");
}
sqlEnd.append("'"+valueList.get(valueList.size()-1)+"'"+");");
sql.append(sqlEnd);
System.err.println("sql:"+sql);
conn= ConnectionManager.getConnection(dbQueryData);
try {
ps=conn.prepareStatement(sql.toString());
//ps.addBatch(insertSql);
ps.executeUpdate();
success++;
suList.add(sql.toString());
System.err.println("导入成功"+success);
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
filed++;
System.err.println("导入失败"+filed);
System.err.println("失败sql:"+sql);
fiList.add(sql.toString());
//return null;
}finally {
System.err.println("导入完成");- }
- }
- try {
conn.close();
System.err.println("关闭数据库成功");
} catch (SQLException e) {
System.err.println("关闭数据库失败");- }
countList.add(String.valueOf(success));
countList.add(String.valueOf(filed));
resultMap.put("count",countList);
resultMap.put("success",suList);
resultMap.put("filed",fiList);
return resultMap;- }
- }
- excel的导出
- @RequestMapping
public static void exportToExcel(HttpServletRequest request,
HttpServletResponse response,DBQueryData dbQueryData) {
try {
System.err.println(dbQueryData);
String name =dbQueryData.getTableName();
DBhepler dBhepler=new DBhepler();
DBList dbList=dBhepler.search(dbQueryData);
Workbook workbook = createWorkbook(dbList, name);- String attachmentName = name + ".xls";
- String ua = request.getHeader("User-Agent");
boolean isChrome = (ua != null && ua.contains("Chrome"));- try {
if (isChrome) {
attachmentName = java.net.URLEncoder.encode(attachmentName, "UTF-8");
}
else {
attachmentName = new String(attachmentName.getBytes("GB2312"), "iso8859-1");
}
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}- response.setHeader("Content-disposition", "attachment; filename=" + attachmentName);
response.setContentType("application/msexcel");
ServletOutputStream os = response.getOutputStream();
workbook.write(os);
os.close();
}
catch (Exception e) {
throw new RuntimeException(e);
}
}- private static Workbook createWorkbook(DBList dbList, String name) throws Exception {
String sheetName = name;
Workbook workbook = new HSSFWorkbook();
Sheet sheet = null;
int a = dbList.getRowCount();
if (a > 65535) {
int length = a / 65535;
for (int i = 0; i <= length; i++) {
if (sheet != null) {
sheet = null;
}
sheet = workbook.createSheet(sheetName + i);
int colCount = dbList.getColCount();
Row titleRow = sheet.createRow(0);
List<String> RowList=dbList.getRowTitle();
for(int j=0;j<RowList.size();j++){
Cell cell = titleRow.createCell(j);
cell.setCellValue(RowList.get(j));
}
if ((i + 1) * 65535 < a) {
//for (int r = i * 65535; r < (i + 1) * 65535; r++) {
List<List<String>> valueList= dbList.getValueList();
for(int v=0;v<valueList.size();v++){
Row row = sheet.createRow(v+ 1);
List<String> lists=valueList.get(v);
for (int l=0;l<lists.size();l++){
Cell cell=row.createCell(l);
cell.setCellValue(lists.get(l));
}- }
- //}
}
else {
//for (int r = i * 65535; r < a; r++) {
List<List<String>> valueList= dbList.getValueList();
for(int v=0;v<valueList.size();v++){
Row row = sheet.createRow(v+ 1);
List<String> lists=valueList.get(v);
for (int l=0;l<lists.size();l++){
Cell cell=row.createCell(l);
cell.setCellValue(lists.get(l));
}
}
// }
}
}
}
else {
sheet = workbook.createSheet(name);
Row titleRow = sheet.createRow(0);
List<String> RowList=dbList.getRowTitle();
for(int j=0;j<RowList.size();j++){
Cell cell = titleRow.createCell(j);
cell.setCellValue(RowList.get(j));
}
List<List<String>> valueList= dbList.getValueList();
for(int v=0;v<valueList.size();v++) {
Row row = sheet.createRow(v + 1);
List<String> lists = valueList.get(v);
for (int l = 0; l < lists.size(); l++) {
Cell cell = row.createCell(l);
cell.setCellValue(lists.get(l));
}
}
}
return workbook;
}
- excel的导入
- package com.gpdi.mdata.web.manage.database.utils;
- import com.gpdi.mdata.web.manage.database.data.DBQueryData;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;- import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;- public class ReadExcel {
- public static void readExcel(InputStream file,String fileName,DBQueryData dbQueryData)throws IOException {
- String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName
.substring(fileName.lastIndexOf(".") + 1);
if ("xls".equals(extension)) {
read2003Excel(file,dbQueryData);
} else if ("xlsx".equals(extension)) {
read2007Excel(file);
} else {
//throw new IOException("不支持的文件类型");
read2003Excel(file,dbQueryData);
}
}- public static Map<String, List<String>> read2003Excel(InputStream file,DBQueryData dbQueryData)
{
DBhepler dBhepler=new DBhepler();
Map<String, List<String>> resultMap =new HashMap<>();
List<List<Object>> list = new ArrayList<>();
long Start;
try (HSSFWorkbook hwb = new HSSFWorkbook(file)) {- System.err.println("sheet:" + hwb.getNumberOfSheets());
Start = System.currentTimeMillis();
HSSFSheet sheet = hwb.getSheetAt(0);- Object value = null;
HSSFRow row = null;
HSSFCell cell = null;
int counter = 0;
System.err.println("s"+sheet.getLastRowNum());
//首行的内容,相当字段名
Object firstValue=getFirstRow(sheet);
String []ss=firstValue.toString().split(",");
for (int l=0;l<ss.length;l++){
System.err.println("ss:"+ss[l]);
}
//每行的每个单元格内容
for (int i = 1; i <=sheet.getLastRowNum(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new ArrayList<>();- for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
Long ns=System.currentTimeMillis();
if (cell == null) {
continue;
}
Long ne=System.currentTimeMillis();
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
Long Ss=System.currentTimeMillis();- value = cell.getStringCellValue();
Long Se=System.currentTimeMillis();
//System.out.println( "Strting开始:"+Ss+"结束:"+Se);
break;
case XSSFCell.CELL_TYPE_NUMERIC:
Long nns=System.currentTimeMillis();
System.out.println(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cell.getCellStyle().getDataFormatString());
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
Long nne=System.currentTimeMillis();
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
break;
case XSSFCell.CELL_TYPE_BLANK:
System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}- list.add(linked);
System.err.println(i);- }
long end=System.currentTimeMillis();- System.err.println("总的开始:" + Start + "结束:" + end);
- resultMap= dBhepler.SQLInsert(ss, list, dbQueryData);}
catch (Exception e){- }
return resultMap;
}- private static List<List<Object>> read2007Excel(InputStream file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
// 构造 XSSFWorkbook 对象,strPath 传入文件路径
XSSFWorkbook xwb = new XSSFWorkbook(file);
// 读取第一章表格内容
XSSFSheet sheet = xwb.getSheetAt(0);
Object value = null;
XSSFRow row = null;
XSSFCell cell = null;
int counter = 0;
for (int i = sheet.getFirstRowNum(); counter < sheet
.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new LinkedList<Object>();
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
//System.out.println(i + "行" + j + " 列 is String type");
value = cell.getStringCellValue();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
System.out.println(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cell.getCellStyle().getDataFormatString());
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
break;
case XSSFCell.CELL_TYPE_BLANK:
System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}
list.add(linked);
}
return list;
}- public static void main(String[] args) {
- }
- private static Object getFirstRow(HSSFSheet sheet){
- Object value = "";
HSSFRow row = null;
HSSFCell cell = null;
row = sheet.getRow(0);
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
//System.out.println(0 + "行" + j + " 列 is String type");
value = value+cell.getStringCellValue()+",";
break;
case XSSFCell.CELL_TYPE_NUMERIC:
System.out.println(0+ "行" + j
+ " 列 is Number type ; DateFormt:"
+ cell.getCellStyle().getDataFormatString());
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue())+",";
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = value+nf.format(cell.getNumericCellValue())+",";
} else {
value =value+ sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()))+",";
}
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(0 + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue()+",";
break;
case XSSFCell.CELL_TYPE_BLANK:
System.out.println(0 + "行" + j + " 列 is Blank type");
value =value+ ""+",";
break;
default:
System.out.println(0 + "行" + j + " 列 is default type");
value = value+cell.toString()+",";
}
if (value == null || "".equals(value)) {
continue;
}- }
//System.err.println("value:"+value);
return value;
}
}
- 调用csv
- @RequestMapping
public Map<String, List<String>> upload(HttpServletRequest request,DBQueryData dbQueryData) throws IOException {
System.err.println("进来了。。。。");
Map<String, List<String>> resultMap=new HashMap<>();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 得到上传的文件
MultipartFile mFile = multipartRequest.getFile("file");
// 得到上传服务器的路径
String path = request.getSession().getServletContext()
.getRealPath("/WEB-INF/upload/");
File file = new File(path);
//判断上传文件的保存目录是否存在
if (!file.exists() && !file.isDirectory()) {
System.out.println(path+"目录不存在,需要创建");
//创建目录
file.mkdir();
}
// 得到上传的文件的文件名
String filename = mFile.getOriginalFilename();
InputStream inputStream = mFile.getInputStream();
String extension = filename.lastIndexOf(".") == -1 ? "" : filename
.substring(filename.lastIndexOf(".") + 1);
if ("xls".equals(extension)) {
//ReadExcel readExcel=new ReadExcel();
resultMap= ReadExcel.read2003Excel(inputStream, dbQueryData);
//inputStream.close();- //return resultMap;
// ReadExcel.readExcel(inputStream, filename, dbQueryData);
} else if ("csv".equals(extension)) {
resultMap=CSVUtils.importCsv(inputStream,dbQueryData);
} else {
//throw new IOException("不支持的文件类型");
//read2003Excel(file,dbQueryData);
// return resultMap;
}- // 文件流写到服务器端
// FileOutputStream outputStream = new FileOutputStream(path);
//outputStream.write(b, 0, length);
//inputStream.close();
//outputStream.close();
inputStream.close();
return resultMap;
}
- csv的导入导出
- package com.gpdi.mdata.web.manage.database.utils;
- import com.gpdi.mdata.web.manage.database.data.DBList;
import com.gpdi.mdata.web.manage.database.data.DBQueryData;- import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*;- public class CSVUtils {
- public static String TAB = "\r\n";
static{
Properties prop = System.getProperties();
String os = prop.getProperty("os.name").toLowerCase();
if(os.startsWith("win")){
TAB = "\r\n";
}else if(os.startsWith("linux") || os.startsWith("unix")){
TAB = "\n";
}else if(os.startsWith("mac")){
TAB = "\r";
}
}- public static void exportCsv(HttpServletResponse response,DBQueryData dbQueryData) throwsException {
String fileName=dbQueryData.getTableName()+".csv";
DBhepler dBhepler=new DBhepler();
DBList dbList=dBhepler.search(dbQueryData);
List<String> titles=dbList.getRowTitle();
List<List<String>> data=dbList.getValueList();
StringBuffer sb = new StringBuffer();
OutputStream outputStream = null;
for (int i = 0; i < titles.size(); i++) {
if(i != titles.size() - 1){
sb.append(titles.get(i)).append(",");
}else{
sb.append(titles.get(i)).append(TAB);
}
}- for (int i = 0; i < data.size(); i++) {
List<String> row = data.get(i);
for(int j = 0 ; j < row.size(); j++ ){
if(j != row.size() - 1){
sb.append(row.get(j)).append(",");
}else{
sb.append(row.get(j)).append(TAB);
}
}- }
- try {
- response.addHeader("Content-Disposition","attachment;fileName=" + newString(fileName.getBytes("UTF-8"),"iso8859-1"));
//response.addHeader("Content-Length", "" + sb.length());
//response.setContentType("application/csv;charset=UTF-8");
response.setContentType("multipart/form-data");//设置文件ContentType类型,这样设置,会自动判断下载文件类型
outputStream = response.getOutputStream();- outputStream.write(new byte []{( byte ) 0xEF ,( byte ) 0xBB ,( byte ) 0xBF });//加上bom头,才不会中文乱码
outputStream.write(sb.toString().getBytes("UTF-8"));
outputStream.flush();
} catch (IOException e) {- }finally{
try {
outputStream.close();
} catch (IOException e) {- }
}
}- public static List<String> importCsv(File file){
List<String> data = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}
} catch (Exception e) {- }finally{
try {
br.close();
} catch (IOException e) {- }
}- return data;
}- public static Map<String, List<String>> importCsv(InputStream inputStream,DBQueryData dbQueryData){
List<String> data = new ArrayList<String>();
Map<String, List<String>> resultMap=new HashMap<>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(inputStream,"Utf-8"));
String line = "";
while((line = br.readLine()) != null){
data.add(line);
}- } catch (Exception e) {
- }finally{
try {
br.close();
inputStream.close();
} catch (IOException e) {- }
- }
- List<List<Object>> result=new ArrayList<>();
DBhepler dBhepler=new DBhepler();
if(data.size()>0) {
for (int i = 0; i < data.size(); i++) {
List<Object> valueList = new ArrayList();
if (i != 0) {
String cont[] = data.get(i).replace(""", "").split(",");
for (int j = 0; j < cont.length; j++) {
valueList.add(cont[j]);
}
result.add(valueList);
}
System.err.println("csv:" + data.get(i).replace(""",""));
}
String zdName[] = data.get(0).replace(""", "").split(",");
resultMap=dBhepler.SQLInsert(zdName, result, dbQueryData);- }
else {
return resultMap;
}
return resultMap;
}- }
java 调用jdbc 实现excel和csv的导入和导出的更多相关文章
- php中excel以及cvs等导入以及导出
一般网站后台都有人员导入或者是订单导出之类的操作,今天分享一下几种php excel cvs等文件导入导出的办法. 第一种比较简单的,自己写的,不引用任何excel类.但是会有bug,代码如下: 首先 ...
- 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)
前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ...
- java调用POI读取Excel
HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls:XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx: 1.注意点 getPhy ...
- 用JDBC把Excel中的数据导入到Mysql数据库中
步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...
- Java web实时进度条整个系统共用(如java上传、下载进度条、导入、导出excel进度条等)
先上图: 文件上传的: 2017-05-04再次改进.在上传过程中用户可以按 Esc 来取消上传(取消当前上传,或者是全部上传)... 2019-03-26更新进度条显示体验 从服务器上压缩下载: 从 ...
- mysql的csv数据导入与导出
# 需要station_realtime存在 load data infile 'd:/xxxx/station_realtime2013_01.csv' into table `station_re ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- js原生导出excel和csv
严格意义来说并不是真正的excel文件,只是可以用excel打开查看而已,实际上的格式是逗号分隔文件即csv文件. 这里有几个坑要说一下: 不加Unicode的utf8头部标识excel打开文件会 ...
- Java导出Excel和CSV(简单Demo)
Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV. JavaBean public class ReportInfo { int id; String date; int nu ...
随机推荐
- 全国计算机等级考试二级教程-C语言程序设计_第11章_对函数的进一步讨论
无论传递什么参数,函数都有副本机制 改变一个变量,需要传入变量的地址 改变一个指针变量,需要传入指针变量的地址 //int add(int a, int b);挖取函数声明 //int ()(int ...
- php 获取汉字拼音首字母的函数
function getFirstChar($string){ if($string{0}>="A" and $string{0}<="z" )re ...
- 获取UIButton的一些属性
获取文字 button.currentTitle 更多如下: @property(nullable, nonatomic,readonly,strong) NSString *currentTitl ...
- 剑指offer第10题
import java.util.Scanner; /* 前两种方法是看最低为是不是为1,不为1则向右移动. 第一种只能对正整数有效,对负数不行,因为负数用的是补码,最高外符号位为1,最后右移动,肯定 ...
- 【转】java jawin api 中文 invoke方法
org.jawin Class FuncPtr java.lang.Object org.jawin.FuncPtr ----------------------------------------- ...
- 指针直接赋值为整型AND利用宏定义求结构体成员偏移量
首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数; 除外,该语句表示指针为空): 所以 ; 这样的代码是不允许的. ...
- Ubuntu14.04(64位)安装ATI_Radeon_R7_M265显卡驱动
电脑型号:Dell inspiron 14-5447 笔记本 显卡配置:集成显卡Intel核心显卡,Cpu是i5-4210U;独立显卡ATI_Radeon_R7_M265 网上关于ATI/Intel双 ...
- 关于FIND_IN_SET 和distinct 的坑爹的一天
FIND_IN_SET的使用,前面介绍过,distinct是结果去重复的函数,两者结合使用,却花费了我一天的光阴. 1.先面试含有重复值正确的显示顺序select lIdfrom tbCourse1 ...
- EcShop后台添加菜单[步骤]
1. 添加菜单的链接地址:打开文件[/后台目录/includes/inc_menu.php],在结尾加入例如:$modules['dashi']['dashi_list'] = 'join_dashi ...
- 让2个并列的div根据内容自动保持同等高度js
有左右2个并列的div,2个div都不能限定高度.左div为导航,右div为内容.如何能让左div块自动获得和右div块相等的高度? 同时,也有网友提问到“如果右块高度比左块低,会不会导致左块的内容被 ...