excel导出为sql

package Tools;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.lang.reflect.Field;

import java.util.ArrayList;

import java.util.List;

import jxl.Sheet;

import jxl.Workbook;

import entity.Student;

public class ConvertXMSToSQL {

/**

* 从xls表格中获取数据,生成可执行的sql文件,用以插入数据库,注意需要引入jxl包!支持int,Integer,long,Long,String

* ,可自行扩展

*

* @param args

* @throws IllegalArgumentException

* @throws IllegalAccessException

*/

public static void main(String[] args) throws IllegalArgumentException,

IllegalAccessException {

// 得到表格中所有的数据

List<Student> listExcel = getAllByExcel("C:\\Users\\xxx\\Desktop\\zzz.xls");

try {

String path = "C:\\Users\\xxx\\Desktop\\convert.sql";// 文件保存路径、名字

File file = new File(path);

BufferedWriter ow = new BufferedWriter(new FileWriter(file));

for (Student c : listExcel) {

String sql = "insert into cfg_avatar values (" + outSql(c)

+ ")";

ow.write(sql + ";" + "\n");

}// 写入内容

ow.close();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 从xls中获取数据

*

* @param file

* @return

*/

public static List<Student> getAllByExcel(String file) {

List<Student> list = new ArrayList<Student>();

try {

Workbook rwb = Workbook.getWorkbook(new File(file));

Sheet rs = rwb.getSheet(0);

int clos = rs.getColumns();// 得到所有的列

int rows = rs.getRows();// 得到所有的行

// 样例中,数据从第三列第一行开始

for (int i = 2; i < rows; i++) {

// 取得的每一行的所有数据存入listString

List<String> listString = new ArrayList<String>();

for (int j = 0; j < clos; j++) {

String str = rs.getCell(j, i).getContents();

listString.add(str);

}

Student Student = (Student) newObject(new Student(), listString);

list.add(Student);

}

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

/**

* 使用反射设置数据。此例中可设置的数据类型有限,没有的请自己添加!!!

*

* @param obj

* @param list

* @return

* @throws IllegalArgumentException

* @throws IllegalAccessException

*/

public static Object newObject(Object obj, List<String> list)

throws IllegalArgumentException, IllegalAccessException {

Field[] field = obj.getClass().getDeclaredFields();

for (int i = 0; i < field.length; i++) {

Field f = field[i];

f.setAccessible(true);

if (f.getType() == String.class) {

f.set(obj, list.get(i));

}

if (f.getType() == Integer.class) {

f.set(obj, Integer.parseInt(list.get(i)));

}

if (f.getType() == int.class) {

f.set(obj, Integer.parseInt(list.get(i)));

}

if (f.getType() == Long.class) {

f.set(obj, Long.parseLong(list.get(i)));

}

if (f.getType() == long.class) {

f.set(obj, Long.parseLong(list.get(i)));

}

}

return obj;

}

/**

*

* @param obj

* @return

* @throws IllegalArgumentException

* @throws IllegalAccessException

*/

public static String outSql(Object obj) throws IllegalArgumentException,

IllegalAccessException {

StringBuffer buffer = new StringBuffer();

Field[] field = obj.getClass().getDeclaredFields();

for (int i = 0; i < field.length; i++) {

Field f = field[i];

f.setAccessible(true);

if (f.getType() == String.class) {

buffer.append("‘");

}

buffer.append(f.get(obj));

if (f.getType() == String.class) {

buffer.append("‘");

}

if (i < field.length - 1) {

buffer.append(",");

}

}

return buffer.toString();

}

}

时间: 2024-10-12 17:25:08

excel导出为sql的相关文章

C#Excel导出,导入操作

1.我们在开发操作中,经常会用到Excel操作,其中包括,Excel导入,Excel导出,附件的上传,下载,包括Excel动态导入,我们这里就不讲,主要讲Excel导入,导出操作,而动态的操作,只需要在原来基础上做修改即可.需求图: 2.具体代码实现: A:Excel导出,其中会因为Excel版本的不同导致导出的成败效果不同,具体情况具体分析解决: 1 #region//导出数据 2 /// <summary> 3 /// /导单 4 /// </summary> 5 /// &l

Excel向数据库插入数据和数据库向Excel导出数据

为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 jxl.jar,mysql-connector-java-5.1.22-bin.jar,ojdbc6.jar 代码如下: 一, 建立数据库名称 javaforexcel,建立表stu DROP TABLE IF EXISTS `stu`;CREATE TABLE `stu` (  `id` int(11) N

Delphi实现带有格式的Excel导出功能

功能预览 运行预览 模板样式 存储返参 导出的Excel 2. 代码实现 //执行sql的函数 procedure TForm1.GetReportData(astrsql:string); var strSQL,err:string; i:integer; begin strSQL :='set QUOTED_IDENTIFIER off '+astrsql; //strSQL := astrsql ; //查询 可支持多个结果集的返回 DM.qryReport.Active:=False;

displaytag的Excel导出实践

本文转自 http://lingceng.iteye.com/blog/1820081/ Displaytag官网有1.0, 1.1, 1.2等,注意找到对应的版本.源码和API可以在Maven库中找到.   常规的使用不是问题,这里说说关于Excel导出的问题,中文乱码,使用POI等.我使用的是Displaytag1.1. 基本导出功能   这种情况只需引入displaytag-1.1.jar.   设置column属性media="html"将不会导出,media="ex

ExtJS实现Excel导出

1. 使用POI组件实现excel导出功能 //获取问题列表 List<Suggestion> targetStockList = suggestionService.getSuggestionList(map);           //创建一个新的Excel         HSSFWorkbook workBook = new HSSFWorkbook();         //创建sheet页         HSSFSheet sheet = workBook.createSheet

Excel 中使用sql语句查询

将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和"来自Microsoft query". Oracle数据源的配置 在Excel中,不管实现哪种方式的对那种数据库的访问都需要配置数据源ODBC. 步骤1:打开Microsoft ODBC管理器,点击选项"用户DSN"的"添加"按钮 图 11 步骤2

在Excel中使用SQL语句查询和筛选

本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQL语句实现精确查询>,觉得非常受用,分享给大家. 微博上有人回复评论说直接用vlookup.或者导入数据库进行查询处理就好了,岂不是更高效.更灵活:其实给人的第一直观感觉是这样子的,但是我们多想一步,这篇文章的应用场景.使用前提条件是什么?我想到的有以下几个方面:①数据量不是很大的时候:②数据结构导入数

二十六、【开源框架】EFW框架Winform前端开发之Grid++Report报表、条形码、Excel导出、图表控件

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu.com/s/1o6MAKCa 前言:本章介绍除DotNetBar2控件套件之外的另外一些常用控件,包括Grid++Report报表.条形码.Excel导出.图表控件ZedGraph:类似这些控件网上免费开源的太少了,经过一番对比和使用感受最后决定把这几个控件整合到EFW框架中供大家选择使用: 本

java excel导出

1.  Excel导出的核心方法在ExportExcel类中,使用时请将该类完整的引入. 1 import java.io.IOException; 2 import java.io.OutputStream; 3 import java.lang.reflect.Field; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 import java.text.Si