准备工作:

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)的更多相关文章

  1. 使用pentaho工具将数据库数据导入导出为Excel

    写在前面:本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库. 补充:使用此工具并不需要任何一句代码并能快速便捷解决实际问题,此工 ...

  2. Java实现大批量数据导入导出(100W以上) -(三)超过25列Excel导出

    前面一篇文章介绍大数据量导出实现: Java实现大批量数据导入导出(100W以上) -(二)导出 这篇文章在Excel列较少时,按以上实际验证能很快实现生成.但如果列较多时用StringTemplat ...

  3. Java实现大批量数据导入导出(100W以上) -(二)导出

    使用POI或JXLS导出大数据量(百万级)Excel报表常常面临两个问题: 1. 服务器内存溢出: 2. 一次从数据库查询出这么大数据,查询缓慢. 当然也可以分页查询出数据,分别生成多个Excel打包 ...

  4. Java实现大批量数据导入导出(100W以上) -(一)导入

    最近业务方有一个需求,需要一次导入超过100万数据到系统数据库.可能大家首先会想,这么大的数据,干嘛通过程序去实现导入,为什么不直接通过SQL导入到数据库. 大数据量报表导出请参考:Java实现大批量 ...

  5. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

  6. 数据库数据导入/导出报错:无法在只读列“Id”中插入数据。

    本文仅供小白参考,大佬请随意...... 本例是:从vs 2017自带的localDB数据库的数据---导出到---->Sql Server 2008中的相应数据库中 1. 导出数据库: 2. ...

  7. 数据库数据导入导出系列之五 C#实现动态生成Word(转)

    1. 一个控制台例子,实现动态生成Word. 首先,添加引用:COM->Microsoft Word 11.0 Object Library. 2. 介绍几篇牛人写的关于操作Word的文章 [分 ...

  8. ssm框架之将数据库的数据导入导出为excel文件

    在这里首先我要将自己遇到的各种问题,以及需求记录下来,做一个备忘,便于以后查看: 需求:主要实现两个功能,将oracle数据库里的数据导出为excel,同时需要将excel表格的数据导入到数据库 环境 ...

  9. Java将数据库数据导入EXCEL

    一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...

随机推荐

  1. 【IOS】 遍历info 所有内容 &amp;&amp; 唯一的节能设备UUID

    /**获取装置imie*/ std::string DeviceInfo::getIMIE() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) NSStri ...

  2. MySQL存储引擎差异化实验

    本篇把MySQL最常用的存储引擎给大家做一个介绍,然后通过插入.修改和并发实验来了解和验证一下它们之间的一些差异. 一.MySQL存储引擎简介 存储引擎在MySQL结构里占据核心的位置,是上层抽象接口 ...

  3. sonp跨域请求

    sonp跨域请求学习笔记   前言 ajax,用苍白的话赞扬:很好. 我们可以使用ajax实现异步获取数据,减少服务器运算时间,大大地改善用户体验:我们可以使用ajax实现小系统组合大系统:我们还可以 ...

  4. ExtJs--15--Ext.is*各种类型推断的方法,简单看源代码就能够明确了

    /** * Returns true if the passed value is empty, false otherwise. The value is deemed to be empty if ...

  5. Django教程汇总

    Django基础教程 被解放的姜戈01 初试天涯 被解放的姜戈02 庄园疑云 被解放的姜戈03 所谓伊人 被解放的姜戈04 各取所需 被解放的姜戈05 黑面管家 被解放的姜戈06 假作真时 Djang ...

  6. java设计模式之八代理模式(Proxy)

    其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你 ...

  7. 请确保在编译时已将“AjaxControlToolkit.Properties.Resources.NET4.resources”正确嵌入或链接到程序集“AjaxControlToolkit”

    原文:请确保在编译时已将"AjaxControlToolkit.Properties.Resources.NET4.resources"正确嵌入或链接到程序集"AjaxC ...

  8. 【hoj】2651 pie 二分查找

    二分查找是一个非常主要的算法,针对的是有序的数列,通过中间值的大小来推断接下来查找的是左半段还是右半段,直到中间值的大小等于要找到的数时或者中间值满足一定的条件就返回,所以当有些问题要求在一定范围内找 ...

  9. 《Programming Hive》读书笔记(两)Hive基础知识

    <Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...

  10. SVN服务器搭建(2)

    转自:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html 上一篇介绍了VisualSVN Server和Tortois ...