`

从数据库读取数据到Excel

 
阅读更多
直接上代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<table classname="classname" class="com.lt.util.policy.matching.vo.FlightCourseVo" tablename="b_flight_course">
		<property name="id" column="id" type="java.lang.Integer"></property>
		
		<property name="airlineCode" column="airline_code" type="java.lang.String"></property>
		
		<property name="departureAirport" column="departure_airport" type="java.lang.String"></property>
		
		<property name="arrivalAirport" column="arrival_airport" type="java.lang.String"></property>
		
		<property name="flightNo" column="flight_no" type="java.lang.String"></property>
		
		<property name="type" column="type" type="java.lang.Integer"></property>
		
		<property name="price" column="price" type="java.lang.Double"></property>
		
		<property name="distance" column="distance" type="java.lang.Double"></property>
		
		<property name="international" column="international" type="java.lang.Integer"></property>
		
		<property name="startDate" column="start_date" type="java.util.Date"></property>
		
		<property name="expirationDate" column="expiration_date" type="java.util.Date"></property>
		
		<property name="flightCourse" column="flight_course" type="java.lang.String"></property>
	</table>
</beans>




package com.matching;

import java.io.File;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import com.lt.util.policy.matching.vo.FlightCourseVo;

/**
 * 
 * @author guyanming
 * @time 2013-03-22 17:20:00
 * 
 */
public class WriteDBToExcel {

    public static List<Map<String, String>> getBFlightCourse(String XmlName) throws Exception {
        List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
        Map<String, String> map = new HashMap<String, String>();
        Map<String, String> mapnum = new HashMap<String, String>();
        // 参数类型
        Map<String, String> maptype = new HashMap<String, String>();
        SAXBuilder saxBuilder = new SAXBuilder();
        String currenFilePath = MatchingTest.class.getResource(XmlName).getPath();
        File file = new File(currenFilePath);
        Document document = saxBuilder.build(file);
        Element element = document.getRootElement();
        List<Element> list = element.getChildren();
        for (int i = 0; i < list.size(); i++) {
            Element ele = list.get(i);
            String tablename = ele.getAttributeValue("tablename");
            String classname = ele.getAttributeValue("classname");
            String clazz = ele.getAttributeValue("class");
            map.put("tablename", tablename);
            map.put(classname, clazz);
            int num = 0;
            for (Element elepro : (List<Element>) ele.getChildren()) {
                String VoName = elepro.getAttributeValue("name");
                String column = elepro.getAttributeValue("column");
                String columnType = elepro.getAttributeValue("type");
                mapnum.put(String.valueOf(num), VoName);
                map.put(VoName, column);
                maptype.put(VoName, columnType);
                num++;
            }
        }
        listMap.add(mapnum);
        listMap.add(map);
        listMap.add(maptype);
        return listMap;
    }

    public void writeExcel(List<FlightCourseVo> list) {
        try {
            // 创建一个可写入的excel文件对象
            WritableWorkbook workbook = Workbook.createWorkbook(new File("D://guyanming.xls"));
            // 使用第一张工作表,命名为“b_flight_course”
            WritableSheet sheet = workbook.createSheet("b_flight_course", 0);

            // String[] tableHead = { "id", "airlineCode", "departureAirport",
            // "arrivalAirport", "flightNo", "type",
            // "price", "distance", "international", "startDate",
            // "expirationDate", "flightCourse" };
            String[] tableHead = new String[mapnum.size()];

            for (int i = 0; i < mapnum.size(); i++) {
                tableHead[i] = mapnum.get(String.valueOf(i));
            }

            // 表头处理
            for (int i = 0; i < tableHead.length; i++) {
                Label label = new Label(i, 0, tableHead[i]);
                sheet.addCell(label);
            }
            FlightCourseVo fc = null;
            for (int i = 0; i < list.size(); i++) {
                fc = list.get(i);
                for (int j = 0; j < tableHead.length; j++) {
                    String methodName = "get" + tableHead[j].substring(0, 1).toUpperCase() + tableHead[j].substring(1);
                    Method m = fc.getClass().getMethod(methodName);
                    Object obj = m.invoke(fc);
                    Label labelCFC = new Label(j, i + 1, String.valueOf(obj));
                    sheet.addCell(labelCFC);
                }
            }
            // 关闭对象,释放资源
            workbook.write();
            workbook.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    private static List<Object> getFlightCourseVoList(Map<String, String> mapnum, Map<String, String> map,
            Map<String, String> maptype, String SqlWhere) throws Exception {
        String table = map.get("tablename");
        StringBuffer sql = new StringBuffer("");
        sql.append(" select ");
        String columnName = null;
        String column = null;
        for (int i = 0; i < mapnum.size(); i++) {
            columnName = mapnum.get(String.valueOf(i));
            column = map.get(columnName);
            if ((i + 1) == mapnum.size()) {
                sql.append(" " + column);
                sql.append(" as ");
                sql.append(columnName + " ");
            } else {
                sql.append(" " + column);
                sql.append(" as ");
                sql.append(columnName + ",");
            }
        }
        sql.append(" from ");
        sql.append(table);
        sql.append(" where ");
        if (SqlWhere == null || "".equals(SqlWhere)) {
            sql.append("1=1");
        } else {
            sql.append(SqlWhere);
        }

        java.sql.Connection conn = NFDUtil.getDBConnection();
        ResultSet rs = conn.createStatement().executeQuery(sql.toString());
        String classname = map.get("classname");
        List<Object> fcList = new ArrayList<Object>();
        Object object = null;
        String MethodNameLost = null;
        String Methodtype = null;
        String MethodName = null;
        while (rs.next()) {
            object = Class.forName(classname).newInstance();
            for (int i = 0; i < mapnum.size(); i++) {
                MethodNameLost = mapnum.get(String.valueOf(i));
                Methodtype = maptype.get(MethodNameLost);
                MethodName = "set" + MethodNameLost.substring(0, 1).toUpperCase() + MethodNameLost.substring(1);
                Method m = object.getClass().getMethod(MethodName, Class.forName(Methodtype));
                // java.lang.Integer
                if ("java.lang.Integer".equals(Methodtype)) {
                    Object temp1 = rs.getInt(MethodNameLost);
                    m.invoke(object, temp1);
                }
                // java.lang.String
                else if ("java.lang.String".equals(Methodtype)) {
                    Object temp2 = rs.getString(MethodNameLost);
                    m.invoke(object, temp2);
                }
                // java.lang.Double
                else if ("java.lang.Double".equals(Methodtype)) {
                    Object temp3 = rs.getDouble(MethodNameLost);
                    m.invoke(object, temp3);
                }
                // java.util.Date
                else if ("java.util.Date".equals(Methodtype)) {
                    Object temp4 = rs.getDate(MethodNameLost);
                    m.invoke(object, temp4);
                }

            }
            fcList.add(object);
        }
        conn.close();
        return fcList;
    }

    public static void ExcuteExcel(String fileName, String SqlWhere) throws Exception {
        List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
        listMap = WriteDBToExcel.getBFlightCourse(fileName);
        mapnum = listMap.get(0);
        map = listMap.get(1);
        maptype = listMap.get(2);
        List list = WriteDBToExcel.getFlightCourseVoList(mapnum, map, maptype, SqlWhere);
        try {
            WriteDBToExcel me = new WriteDBToExcel();
            File f = new File("D://guyanming.xls");
            // 生成一个可读取的excel文件对象
            me.workbook = Workbook.getWorkbook(f);
            // 写入数据
            me.writeExcel(list);
            me.workbook.close();

        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public static void main(String[] arges) throws Exception {
        System.out.println("********************game begin***********************");
        WriteDBToExcel.ExcuteExcel("BFlightCourse.xml", "type = 1 and international = 0");
        System.out.println("********************game over************************");
    }

    private Workbook workbook;

    static Map<String, String> map = null;

    static Map<String, String> mapnum = null;

    static Map<String, String> maptype = null;
}

分享到:
评论

相关推荐

    java读取excel数据导入数据库源码

    java读取excel数据导入数据库源码 java读取excel数据导入数据库源码

    几种从数据库读取数据生成excel文件的比较

    本文将讨论三种从数据库读取数据并生成Excel文件的方法,以VB6.0为编程环境,配合SQL Server 2000和Excel 2000进行测试。测试表包含10322条记录,9个字段。 1. **使用CopyFromRecordset方法**: 这种方法是通过...

    c#程序,从数据库中读取数据并用excel导出

    这是我做的一个将数据用excel导出代码,前半段代码可以忽略,是查询语句,最后一段才是导出excel。

    从Excel中读取数据导入到数据库中

    本文将详细阐述如何从Excel文件中读取数据并将其导入到数据库中,重点处理合并单元格和超过4000字符的数据列。 首先,我们需要理解Excel是常用的数据存储和处理工具,而数据库如MySQL、SQL Server、Oracle等则用于...

    定时读取excel更新到数据库

    3. **读取数据**:定位到包含更新数据的工作表,读取所需的数据行和列。注意,如果数据有特定的格式或结构,可能需要进行预处理,例如去除空格、转换数据类型等。 4. **处理数据**:根据业务需求,对读取到的数据...

    java解析Excel文件并把数据存入数据库和导出数据为excel文件SpringBoot代码示例

    1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....

    从数据库导出数据到EXCEL源码

    在标题为“从数据库导出数据到EXCEL源码”的项目中,我们关注的核心知识点是利用C#编程语言将数据库中的数据导出到Microsoft Excel文件中。这通常是数据分析、报告生成或数据备份等应用场景中的常见操作。 首先,C#...

    数据库数据导入到excel中 jsp

    在标题为“数据库数据导入到excel中 jsp”的场景下,我们主要探讨的是如何利用Java Web技术,尤其是JSP(JavaServer Pages)来实现数据在数据库与Excel之间的交互。描述中提到的实例涵盖了两个方向:将Excel数据导入...

    从excel读取数据到数据库

    在标题"从Excel读取数据到数据库"中,我们探讨的核心技术是使用PowerBuilder(PB)这一强大的编程工具来实现数据的导入,具体是从Microsoft Excel文件中读取数据并将其存储到数据库系统中。这通常涉及到数据迁移、...

    Python-Excel一键导入MySQL数据库MySQL数据库一键读取到Excel表格

    本主题将深入探讨如何利用Python实现Excel数据一键导入MySQL数据库,以及如何从MySQL数据库中一键读取数据到Excel表格。 首先,我们需要了解Python中的两个关键库:`pandas`和`mysql-connector-python`。`pandas`是...

    数据导入到excel和读取excel数据到数据库

    本文将详细讲解如何将数据导入到Excel以及如何从Excel读取数据并导入到数据库,以实现高效的数据操作。 一、数据导入到Excel 1. 手动导入:最简单的方式是直接复制其他源(如文本文件、数据库表)中的数据,然后在...

    POI从数据库查询数据写入Excel工具类

    本工具类利用POI库,结合Java和MySQL数据库,实现从数据库查询数据并将其高效地写入到Excel文件中的功能。这一过程对于数据导出、报表生成或者数据分析场景非常常见。 【描述】:此项目基于Java 1.8环境,采用Maven...

    从Excel表中读取数据导入到数据库中

    在VS2010中打开网站,浏览ReadExcel.aspx页面,这里选择你要导入的excel表,并且还可以为导入数据库中的表命名,点击Upload完成上传。注意:需要修改ReadExcel.aspx.cs页面中CreateTable中的连接字符串。

    数据库数据写入Excel

    本示例中,我们将探讨如何通过编程方式,利用Java的JDBC(Java Database Connectivity)接口从数据库中获取数据,并将其存储到Excel文档中。`JDBCWriteMyExcel.java` 文件很可能是实现这一功能的源代码。 首先,...

    openpyxl从数据库导入数据到excel

    这是一个用openpyxl连接mysql数据库并获取数据库数据写入到excel的一个py文件

    读取excel数据到数据库

    通过以上步骤,我们可以实现从Excel文件读取数据并将其写入数据库的过程。这个过程在数据分析和自动化任务中非常常见,能有效地整合不同来源的数据,提高工作效率。在实际应用中,应根据具体需求进行适当的调整和...

    java读取数据库中数据到excel

    在Java编程中,将数据库中的数据导出到Excel文件...通过以上步骤,你可以成功地使用Java从数据库中读取数据并将其导出到Excel文件。这个过程涉及到了数据库操作、文件I/O以及第三方库的使用,是Java开发中的常见技能。

    易语言使用数据库连接组件打开EXCEL

    这个组件通常包含了连接数据库、执行SQL语句、获取数据等功能,对于Excel文件而言,我们可以将其视为一个特殊的数据库,通过ODBC(Open Database Connectivity)或者JDBC(Java Database Connectivity)等方式进行...

    从数据库中导出到EXCEL表中

    在ASP.NET C#环境下,将数据库中的数据导出到Excel表格是一项常见的任务,尤其是在数据分析、报表生成或数据共享时。这个过程涉及到多个关键知识点,包括数据库连接、查询、数据处理以及Excel文件操作。以下是对这些...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    在本项目中,主要使用POI来处理Excel文件,读取数据并将其导入到数据库,或者从数据库中导出数据到Excel文件。 4. **Thymeleaf**: Thymeleaf是一个现代的服务器端Java模板引擎,可以处理HTML、XML、JavaScript、CSS...

Global site tag (gtag.js) - Google Analytics