JAVA实现数据库数据导入/导出到Excel(POI)
准备工作:
1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/poi/release/src/(重要)
如下

2.导入Java界面美化包BeautyEye下载地址http://code.google.com/p/beautyeye/downloads/detail?name=beautyeye_lnf_v3.5_all_in_one.zip&can=2&q=(可选)如果不想加入界面美化代码可以把void setlookandfeel()这个方法及其调用去掉
jar在下载解压在文件夹dist目录下

beautyeye_lnf.jar包是个开源的美化Java界面的包,推荐学习做出的Java界面比较美观
BeautyEye L&F简明开发者指南.http://code.google.com/p/beautyeye/wiki/Introduction
3.本案例使用Hiberate下配置Oracle导入导出数据
导出的数据库表为users表
SQL> desc system.users;
Name Type Nullable Default Comments
----- ------------------ -------- ------- --------
ID NUMBER(10)
NAME VARCHAR2(50 CHAR)
PWORD VARCHAR2(32 CHAR)
EMAIL VARCHAR2(100 CHAR) Y
注意Column顺序不能乱
1.ExcelOutandIn.java
ExcelOutandIn主要利用Jtable显示数据库里面的数据
显示效果如图所示

package com.wym.tools;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
import java.util.Vector;
import javax.swing.DefaultRowSorter;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowSorter;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.filechooser.FileFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.hibernate.NonUniqueObjectException;
import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper;
import cn.wym.hibernate.Users;
import cn.wym.hibernate.UsersDAO;
public class ExcelOutandIn extends JFrame implements ActionListener {
JButton button1 = new JButton("ToExcel");
JButton button2 = new JButton("FromExcel");
Container ct = null;
DefaultTableModel defaultModel = null;
JButton add = new JButton("添加");
JButton delete = new JButton("删除");
JButton save = new JButton("保存");
JButton reset = new JButton("刷新");
JPanel jp1 = new JPanel(), jp;
JPanel jp2 = new JPanel();
JScrollPane jsp = null;
UsersDAO userdao = new UsersDAO();
Users users = null;
@SuppressWarnings("unchecked")
List list = null;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
protected JTable table = null;
protected String oldvalue = "";
protected String newvalue = "";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ExcelOutandIn tm = new ExcelOutandIn();
// tm.paintuser();
}
public void paintuser() {
list = this.getUsers();
for (int i = 0; i < list.size(); i++) {
users = (Users) list.get(i);
System.out.println(" ID:" + users.getId() + "");
}
}
@SuppressWarnings("unchecked")
public List getUsers() {
list = userdao.findAll();
return list;
}
private File getSelectedOpenFile(final String type) {
String name = getName();
JFileChooser pathChooser = new JFileChooser();
pathChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
} else {
if (f.getName().toLowerCase().endsWith(type)) {
return true;
} else {
return false;
}
}
}
@Override
public String getDescription() {
return "文件格式(" + type + ")";
}
});
pathChooser.setSelectedFile(new File(name + type));
int showSaveDialog = pathChooser.showOpenDialog(this);
if (showSaveDialog == JFileChooser.APPROVE_OPTION) {
return pathChooser.getSelectedFile();
} else {
return null;
}
}
private File getSelectedFile(final String type) {
String name = getName();
JFileChooser pathChooser = new JFileChooser();
pathChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
} else {
if (f.getName().toLowerCase().endsWith(type)) {
return true;
} else {
return false;
}
}
}
@Override
public String getDescription() {
return "文件格式(" + type + ")";
}
});
pathChooser.setSelectedFile(new File(name + type));
int showSaveDialog = pathChooser.showSaveDialog(this);
if (showSaveDialog == JFileChooser.APPROVE_OPTION) {
return pathChooser.getSelectedFile();
} else {
return null;
}
}
void setlookandfeel() {
try {
BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
} catch (final Exception e) {
System.out.println("error");
}
}
void init() {
setlookandfeel();
buildTable();
jsp = new JScrollPane(table);
ct.add(jsp);
button1.setActionCommand("ToExcel");
button1.addActionListener(this);
button2.setActionCommand("FromExcel");
button2.addActionListener(this);
delete.setActionCommand("delete");
delete.addActionListener(this);
reset.setActionCommand("reset");
reset.addActionListener(this);
save.setActionCommand("save");
save.addActionListener(this);
add.setActionCommand("add");
add.addActionListener(this);
}
public void ToExcel(String path) {
list = getUsers();
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Users");
String[] n = { "编号", "姓名", "密码", "邮箱" };
Object[][] value = new Object[list.size() + 1][4];
for (int m = 0; m < n.length; m++) {
value[0][m] = n[m];
}
for (int i = 0; i < list.size(); i++) {
users = (Users) list.get(i);
value[i + 1][0] = users.getId();
value[i + 1][1] = users.getUsername();
value[i + 1][2] = users.getPassword();
value[i + 1][3] = users.getUEmail();
}
ExcelUtil.writeArrayToExcel(wb, sheet, list.size() + 1, 4, value);
ExcelUtil.writeWorkbook(wb, path);
}
/**
* 从Excel导入数据到数据库
* @param filename
*/
public void FromExcel(String filename) {
String result = "success";
/** Excel文件的存放位置。注意是正斜线 */
// String fileToBeRead = "F:\\" + fileFileName;
try {
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
filename));
// 创建对工作表的引用。
// HSSFSheet sheet = workbook.getSheet("Sheet1");
HSSFSheet sheet = workbook.getSheetAt(0);
int j = 1;//从第2行开始堵数据
// 第在excel中读取一条数据就将其插入到数据库中
while (j < sheet.getPhysicalNumberOfRows()) {
HSSFRow row = sheet.getRow(j);
Users user = new Users();
for (int i = 0; i <= 3; i++) {
HSSFCell cell = row.getCell((short) i);
if (i == 0) {
user.setId((int) cell.getNumericCellValue());
} else if (i == 1)
user.setUsername(cell.getStringCellValue());
else if (i == 2)
user.setPassword(cell.getStringCellValue());
else if (i == 3)
user.setUEmail(cell.getStringCellValue());
}
System.out.println(user.getId() + " " + user.getUsername()
+ " " + user.getPassword() + " " + user.getUEmail());
j++;
userdao.save(user);
}
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
System.out.println("notfound");
e2.printStackTrace();
} catch (IOException e3) {
// TODO Auto-generated catch block
System.out.println(e3.toString());
e3.printStackTrace();
} catch (NonUniqueObjectException e4) {
System.out.println(e4.toString());
}
}
public JTable CreateTable(String[] columns, Object rows[][]) {
JTable table;
TableModel model = new DefaultTableModel(rows, columns);
table = new JTable(model);
RowSorter sorter = new TableRowSorter(model);
table.setRowSorter(sorter);
return table;
}
@SuppressWarnings("unchecked")
public void fillTable(List<Users> users) {
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.setRowCount(0);// 清除原有行
// 填充数据
for (Users Users : users) {
Vector vector = new Vector<Users>();
vector.add(Users.getId());
vector.add(Users.getUsername());
vector.add(Users.getPassword());
vector.add(Users.getUEmail());
// 添加数据到表格
tableModel.addRow(vector);
}
// 更新表格
table.invalidate();
}
@SuppressWarnings("unchecked")
public void tableAddRow(int id, String name, String pwd, String email) {
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.getColumnCount();
// 填充数据
Vector vector = new Vector<Users>();
vector.add(id);
vector.add(name);
vector.add(pwd);
vector.add(email);
// 添加数据到表格
tableModel.addRow(vector);
// 更新表格
table.invalidate();
}
@SuppressWarnings("unchecked")
public void buildTable() {
String[] n = { "编号", "姓名", "密码", "邮箱" };
list = getUsers();
Object[][] value = new Object[list.size()][4];
for (int i = 0; i < list.size(); i++) {
users = (Users) list.get(i);
value[i][0] = users.getId();
value[i][1] = users.getUsername();
value[i][2] = users.getPassword();
value[i][3] = users.getUEmail();
}
defaultModel = new DefaultTableModel(value, n) {
boolean[] editables = { false, true, true, true };
public boolean isCellEditable(int row, int col) {
return editables[col];
}
};
defaultModel.isCellEditable(1, 1);
table = new JTable(defaultModel);
RowSorter sorter = new TableRowSorter(defaultModel);
table.setRowSorter(sorter);
// 设置排序
((DefaultRowSorter) sorter).setComparator(0, new Comparator<Object>() {
public int compare(Object arg0, Object arg1) {
try {
int a = Integer.parseInt(arg0.toString());
int b = Integer.parseInt(arg1.toString());
return a - b;
} catch (NumberFormatException e) {
return 0;
}
}
});
defaultModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
newvalue = table.getValueAt(e.getLastRow(), e.getColumn())
.toString();
System.out.println(newvalue);
int rowss = table.getEditingRow();
if (newvalue.equals(oldvalue)) {
System.out.println(rowss);
System.out.println(table.getValueAt(rowss, 0) + ""
+ table.getValueAt(rowss, 1) + ""
+ table.getValueAt(rowss, 2) + ""
+ table.getValueAt(rowss, 3));
JOptionPane.showMessageDialog(null, "数据没有修改");
} else {
int dialog = JOptionPane.showConfirmDialog(null,
"是否确认修改", "温馨提示", JOptionPane.YES_NO_OPTION);
if (dialog == JOptionPane.YES_OPTION) {
System.out.println(" 修改了");
String s1 = (String) table.getValueAt(rowss, 0)
.toString();
int id = Integer.parseInt(s1);
users = new Users();
users.setId(id);
users.setUEmail(table.getValueAt(rowss, 3)
.toString());
users.setUsername(table.getValueAt(rowss, 1)
.toString());
users.setPassword(table.getValueAt(rowss, 2)
.toString());
try {
userdao.saveOrUpdate2(users);
} catch (NonUniqueObjectException noe) {
new UsersDAO().saveOrUpdate2(users);
}
} else if (dialog == JOptionPane.NO_OPTION) {
table.setValueAt(oldvalue, rowss, table
.getSelectedColumn());
// System.out.println("没有确认修改");
}
}
}
}
});
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// 记录进入编辑状态前单元格得数据
try {
oldvalue = table.getValueAt(table.getSelectedRow(),
table.getSelectedColumn()).toString();
System.out.println(oldvalue);
} catch (Exception ex) {
// TODO: handle exception
}
}
});
}
public ExcelOutandIn() {
// TODO Auto-generated constructor stub
new BorderLayout();
Font font = new Font("宋体", 4, 14);
add.setFont(font);
save.setFont(font);
delete.setFont(font);
reset.setFont(font);
jp1.add(button1);
jp1.add(button2);
jp2.add(add);
jp2.add(delete);
// jp2.add(save);
jp2.add(reset);
ct = this.getContentPane();
ct.add(jp1, BorderLayout.NORTH);
ct.add(jp2, BorderLayout.SOUTH);
init();
this.setTitle("ToOrFromExcel");
this.setVisible(true);
this.setSize(600, 400);
this.setLocation(400, 250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand().equals("add")) {
AddUsers adduser = new AddUsers();
jp = new JPanel();
jp.add(adduser);
ct.add(jp, BorderLayout.WEST);
/*
* users= adduser.getU(); if(users==null){
* JOptionPane.showMessageDialog(null, "Null");
*
* }else{
*
* }
*/
// tableAddRow(id, name, pwd, email);
}
// defaultModel.addRow(v);
if (e.getActionCommand().equals("delete")) {
int srow = 0;
try {
srow = table.getSelectedRow();
} catch (Exception ee) {
}
int rowcount = defaultModel.getRowCount() - 1;// getRowCount返回行数,rowcount<0代表已经没有任何行了。
if (srow > 0) {
Object id = defaultModel.getValueAt(srow, 0);
String ID = id.toString();
users = userdao.findById(Integer.parseInt(ID));
defaultModel.getRowCount();
System.out.println(ID);
defaultModel.removeRow(srow);
// userdao.delete(users);
defaultModel.setRowCount(rowcount);
}
}
if (e.getActionCommand().equals("save")) {
System.out.println("save");
ct.remove(jp);
}
if (e.getActionCommand().equals("reset")) {
System.out.println("reset");
fillTable(userdao.findAll());
}
if (e.getActionCommand().equalsIgnoreCase("toexcel")) {
File selectedFile = getSelectedFile(".xls");
if (selectedFile != null) {
String path = selectedFile.getPath();
// System.out.println(path);
ToExcel(path);
}
} else if (e.getActionCommand().equalsIgnoreCase("FromExcel")) {
File selectedFile = getSelectedOpenFile(".xls");
if (selectedFile != null) {
// String name=selectedFile.getName();
String path = selectedFile.getPath();
FromExcel(path);
fillTable(userdao.findAll());
}
}
}
}
2.导入导出到Excel工具类ExcelUtil.java
package com.wym.tools;
import java.io.File;
/**
* 描述:Excel写操作帮助类
*
*
* */
public class ExcelUtil {
/**
* 功能:创建HSSFSheet工作簿
* @param wb HSSFWorkbook
* @param sheetName String
* @return HSSFSheet
*/
public static HSSFSheet createSheet(HSSFWorkbook wb,String sheetName){
HSSFSheet sheet=wb.createSheet(sheetName);
sheet.setDefaultColumnWidth(12);
sheet.setGridsPrinted(false);
sheet.setDisplayGridlines(false);
return sheet;
}
/**
* 功能:创建HSSFRow
* @param sheet HSSFSheet
* @param rowNum int
* @param height int
* @return HSSFRow
*/
public static HSSFRow createRow(HSSFSheet sheet,int rowNum,int height){
HSSFRow row=sheet.createRow(rowNum);
row.setHeight((short)height);
return row;
}
public static HSSFCell createCell0(HSSFRow row,int cellNum){
HSSFCell cell=row.createCell(cellNum);
return cell;
}
/**
* 功能:创建CELL
* @param row HSSFRow
* @param cellNum int
* @param style HSSFStyle
* @return HSSFCell
*/
public static HSSFCell createCell(HSSFRow row,int cellNum,CellStyle style){
HSSFCell cell=row.createCell(cellNum);
cell.setCellStyle(style);
return cell;
}
/**
* 功能:创建CellStyle样式
* @param wb HSSFWorkbook
* @param backgroundColor 背景色
* @param foregroundColor 前置色
* @param font 字体
* @return CellStyle
*/
public static CellStyle createCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){
CellStyle cs=wb.createCellStyle();
cs.setAlignment(halign);
cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
cs.setFillBackgroundColor(backgroundColor);
cs.setFillForegroundColor(foregroundColor);
cs.setFillPattern(CellStyle.SOLID_FOREGROUND);
cs.setFont(font);
return cs;
}
/**
* 功能:创建带边框的CellStyle样式
* @param wb HSSFWorkbook
* @param backgroundColor 背景色
* @param foregroundColor 前置色
* @param font 字体
* @return CellStyle
*/
public static CellStyle createBorderCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){
CellStyle cs=wb.createCellStyle();
cs.setAlignment(halign);
cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
cs.setFillBackgroundColor(backgroundColor);
cs.setFillForegroundColor(foregroundColor);
cs.setFillPattern(CellStyle.SOLID_FOREGROUND);
cs.setFont(font);
cs.setBorderLeft(CellStyle.BORDER_DASHED);
cs.setBorderRight(CellStyle.BORDER_DASHED);
cs.setBorderTop(CellStyle.BORDER_DASHED);
cs.setBorderBottom(CellStyle.BORDER_DASHED);
return cs;
}
/**
* 功能:多行多列导入到Excel并且设置标题栏格式
*/
public static void writeArrayToExcel(HSSFSheet sheet,int rows,int cells,Object [][]value){
Row row[]=new HSSFRow[rows];
Cell cell[]=new HSSFCell[cells];
for(int i=0;i<row.length;i++){
row[i]=sheet.createRow(i);
for(int j=0;j<cell.length;j++){
cell[j]=row[i].createCell(j);
cell[j].setCellValue(convertString(value[i][j]));
}
}
}
/**
* 功能:多行多列导入到Excel并且设置标题栏格式
*/
public static void writeArrayToExcel(HSSFWorkbook wb,HSSFSheet sheet,int rows,int cells,Object [][]value){
Row row[]=new HSSFRow[rows];
Cell cell[]=new HSSFCell[cells];
HSSFCellStyle ztStyle = (HSSFCellStyle)wb.createCellStyle();
Font ztFont = wb.createFont();
ztFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
//ztFont.setItalic(true); // 设置字体为斜体字
// ztFont.setColor(Font.COLOR_RED); // 将字体设置为“红色”
ztFont.setFontHeightInPoints((short)10); // 将字体大小设置为18px
ztFont.setFontName("华文行楷"); // 将“华文行楷”字体应用到当前单元格上
// ztFont.setUnderline(Font.U_DOUBLE);
ztStyle.setFont(ztFont);
for(int i=0;i<row.length;i++){
row[i]=sheet.createRow(i);
for(int j=0;j<cell.length;j++){
cell[j]=row[i].createCell(j);
cell[j].setCellValue(convertString(value[i][j]));
if(i==0)
cell[j].setCellStyle(ztStyle);
}
}
}
/**
* 功能:合并单元格
* @param sheet HSSFSheet
* @param firstRow int
* @param lastRow int
* @param firstColumn int
* @param lastColumn int
* @return int 合并区域号码
*/
public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){
return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));
}
/**
* 功能:创建字体
* @param wb HSSFWorkbook
* @param boldweight short
* @param color short
* @return Font
*/
public static Font createFont(HSSFWorkbook wb,short boldweight,short color,short size){
Font font=wb.createFont();
font.setBoldweight(boldweight);
font.setColor(color);
font.setFontHeightInPoints(size);
return font;
}
/**
* 设置合并单元格的边框样式
* @param sheet HSSFSheet
* @param ca CellRangAddress
* @param style CellStyle
*/
public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress ca,CellStyle style) {
for (int i = ca.getFirstRow(); i <= ca.getLastRow(); i++) {
HSSFRow row = HSSFCellUtil.getRow(i, sheet);
for (int j = ca.getFirstColumn(); j <= ca.getLastColumn(); j++) {
HSSFCell cell = HSSFCellUtil.getCell(row, j);
cell.setCellStyle(style);
}
}
}
/**
* 功能:将HSSFWorkbook写入Excel文件
* @param wb HSSFWorkbook
* @param absPath 写入文件的相对路径
* @param wbName 文件名
*/
public static void writeWorkbook(HSSFWorkbook wb,String fileName){
FileOutputStream fos=null;
File f=new File(fileName);
try {
fos=new FileOutputStream(f);
wb.write(fos);
int dialog = JOptionPane.showConfirmDialog(null,
f.getName()+"导出成功!是否打开?",
"温馨提示", JOptionPane.YES_NO_OPTION);
if (dialog == JOptionPane.YES_OPTION) {
Runtime.getRuntime().exec("cmd /c start \"\" \"" + fileName + "\"");
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "导入数据前请关闭工作表");
} catch ( Exception e) {
JOptionPane.showMessageDialog(null, "没有进行筛选");
} finally{
try {
if(fos!=null){
fos.close();
}
} catch (IOException e) {
}
}
}
public static String convertString(Object value) {
if (value == null) {
return "";
} else {
return value.toString();
}
}
}
导入的Excel格式

JAVA实现数据库数据导入/导出到Excel(POI)的更多相关文章
- 使用pentaho工具将数据库数据导入导出为Excel
写在前面:本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库. 补充:使用此工具并不需要任何一句代码并能快速便捷解决实际问题,此工 ...
- Java实现大批量数据导入导出(100W以上) -(三)超过25列Excel导出
前面一篇文章介绍大数据量导出实现: Java实现大批量数据导入导出(100W以上) -(二)导出 这篇文章在Excel列较少时,按以上实际验证能很快实现生成.但如果列较多时用StringTemplat ...
- Java实现大批量数据导入导出(100W以上) -(二)导出
使用POI或JXLS导出大数据量(百万级)Excel报表常常面临两个问题: 1. 服务器内存溢出: 2. 一次从数据库查询出这么大数据,查询缓慢. 当然也可以分页查询出数据,分别生成多个Excel打包 ...
- Java实现大批量数据导入导出(100W以上) -(一)导入
最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...
- oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- 数据库数据导入/导出报错:无法在只读列“Id”中插入数据。
本文仅供小白参考,大佬请随意...... 本例是:从vs 2017自带的localDB数据库的数据---导出到---->Sql Server 2008中的相应数据库中 1. 导出数据库: 2. ...
- 数据库数据导入导出系列之五 C#实现动态生成Word(转)
1. 一个控制台例子,实现动态生成Word. 首先,添加引用:COM->Microsoft Word 11.0 Object Library. 2. 介绍几篇牛人写的关于操作Word的文章 [分 ...
- ssm框架之将数据库的数据导入导出为excel文件
在这里首先我要将自己遇到的各种问题,以及需求记录下来,做一个备忘,便于以后查看: 需求:主要实现两个功能,将oracle数据库里的数据导出为excel,同时需要将excel表格的数据导入到数据库 环境 ...
- Java将数据库数据导入EXCEL
一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...
随机推荐
- Swift中文教程(三)--流程控制
原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...
- 用python 爬取网页图片
import re import string import sys import os import urllib url="http://tieba.baidu.com/p/252129 ...
- 通讯录C++console application
#include<iostream> #include<fstream> #include<string> #include<cstring> #inc ...
- UI 收集
semantic http://www.semantic-ui.com.cn/modules/reveal.html sbadmin http://startbootstrap.com/templat ...
- code forces 148D Bag of mice (概率DP)
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- css2与css3的区别
css2与css3的区别 CSS3引进了一些新的元素新的特性,我收集以下,自己做了一个小结: animation(基础动画)eg: div{animation: myfirst 5s linear ...
- c语言中实现从0-1的随机数输出
原文:c语言中实现从0-1的随机数输出 今天晚上同学问了一个巨简单的问题,问我怎么用c语言输出0-1的随机数,可别说,一时之间还想不出来.在写的过程中发现,直接调用random函数还不能实现,用以下方 ...
- 使用Row_Number()分页优化
记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题 最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且 ...
- 关于标准I/O缓冲区和fork函数
标准I/O库提供缓冲的目的是尽可能减少使用read和write调用的次数.标准I/O提供三个类型的缓冲:全缓冲.行缓冲和不带缓冲.标准输入(stdin)和标准输出(stdout)是行缓冲,标准出错(s ...
- 几乎没用到过的css 样式
1. :focus 选择器用于选取获得焦点的元素. 案例:http://www.w3school.com.cn/tiy/t.asp?f=css_sel_focus 2. clearfix清除浮动闭合 ...