- 浏览: 54647 次
- 性别:
- 来自: 上海
文章分类
最新评论
直接上代码:
<?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; }
发表评论
-
文件的拷贝
2012-10-26 15:44 729public static void main(Strin ... -
char与byte转换
2012-10-26 11:19 1042public static void main(Strin ... -
文本数据读取
2012-10-26 10:40 720文本数据读取 public static void mai ... -
JDBC
2012-10-26 10:17 730天天搞NC财务,很多基础快忘了,现在每天复习一点点,争取盲写代 ... -
生成随机码
2012-10-25 22:23 836public static String genRando ... -
String、StringBuffer与StringBuilder之间区别
2012-10-25 21:58 769关于这三个类在字符串 ...
相关推荐
几种从数据库读取数据生成excel文件的比较
java读取excel数据导入数据库源码 java读取excel数据导入数据库源码
这是我做的一个将数据用excel导出代码,前半段代码可以忽略,是查询语句,最后一段才是导出excel。
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
从Excel中读取数据导入到数据库中,Excel中有合并单元格的列,也有超过4000字符的数据列。
数据导入到excel和读取excel数据到数据库 数据导入到excel和读取excel数据到数据库
定时读取excel更新到数据库,用2003的excel
java读取数据库中数据到excel,包含了必要的jar
在VS2010中打开网站,浏览ReadExcel.aspx页面,这里选择你要导入的excel表,并且还可以为导入数据库中的表命名,点击Upload完成上传。注意:需要修改ReadExcel.aspx.cs页面中CreateTable中的连接字符串。
这是一个用openpyxl连接mysql数据库并获取数据库数据写入到excel的一个py文件
读取excel数据,将数据写入相应的数据库中
读取EXCEL数据到数据库(C#)\ 读取EXCEL数据到数据库(C#)
powerbuilder写的从excel读取数据到数据库
内容概要:本资源介绍了如何从利用Npoi库操作Excel,如相关读取单元格、行,介绍了如何对单元格数据格式进行操作,并分享了如何将Datatable数据导入Mysql数据库,方便项目管理。 阅读建议:此资源以如何读取Excel...
从Excel文件中读取数据再保存到MDB数据库文件中
把数据库查询出来的数据写入Excel文档可带图片
Java、SpringBoot实现对Excel内容的读取并将Excel内容导入到数据库中(后端篇)
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
从access数据库读取写入xls表格,可以借鉴参考,对xls操作和access读写有学习借鉴的地方,写xls有几种方法,我的是一张表全部封装为一个range一次写入,速度很快,如果一个单元格一个单元格的写的话非常慢。
vb.net将如何将excel中的数据导入到数据库