sql文件转换为excel文件
最近经常需要把sql整理成excel,本人比较懒,所以写一个小工具,用到了jxl包。以前没有接触过,正好了解一下。
一、基础知识
jxl操作excel包括对象 Workbook,Sheet,Cell。
一个excel就对应一个Workbook对象,
一个Sheet页表就对应一个Sheet对象,
一个单元格就对应一个Cell对象,
一个Workbook可以有多个Sheet对象,
一个Sheet对象可以有多个Cell对象。
二、 小工具
1 package com.mq;
2
3
4 import jxl.Workbook;
5 import jxl.write.Label;
6 import jxl.write.WritableSheet;
7 import jxl.write.WritableWorkbook;
8 import jxl.write.WriteException;
9 import jxl.write.biff.RowsExceededException;
10
11 import java.io.*;
12 import java.util.ArrayList;
13
14 class SqlToExel {
15 public static void main(String[] args) {
16 String readPath ="F:\\0017.sql";
17 String writePath="F:\\0017.xls";
18 ArrayList<ArrayList<String>> allDate =getData(readPath);
19 writeExcel(writePath,allDate);
20 }
21 //读取文件
22 private static ArrayList<ArrayList<String>> getData(String path){
23 //用于存储所有从文件中读取的数据
24 ArrayList<ArrayList<String >> allDate = new ArrayList<>();
25 try {
26 //字符缓冲输入流
27 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path))) ;
28 String line;
29 //存储每一行要展示的内容
30 ArrayList<String> oneDate = new ArrayList<>();
31 //判断是否读到行尾
32 while((line = reader.readLine())!= null){
33 //判断读到的是否为空行
34 if(line.equals("")){
35 allDate.add(oneDate);
36 oneDate = new ArrayList<>();
37 }
38 //判断读到的内容是否为插入语句
39 if(line.indexOf("insert")!=-1){
40 oneDate.add(line);
41 }
42 }
43
44 } catch (FileNotFoundException e) {
45 e.printStackTrace();
46 } catch (IOException e) {
47 e.printStackTrace();
48 }
49 return allDate;
50 }
51
52 private static void writeExcel(String path, ArrayList<ArrayList<String>> allDate){
53 if(path !=null && allDate !=null){
54 WritableWorkbook wwb = null;
55 WritableSheet ws;
56 String sheetName= "zhr";
57 try {
58 //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
59 wwb = Workbook.createWorkbook(new File(path));
60 //创建sheet
61 ws = wwb.createSheet(sheetName, 1);
62 //循环遍历获取内容
63 for(int i=0;i<allDate.size();i++){
64 Label labelC;
65 ArrayList<String> oneDate= allDate.get(i);
66 String mergeDate = "";
67 for (int j = 0; j < oneDate.size(); j++) {
68 String oneLabelDate = oneDate.get(j);
69 mergeDate = mergeDate + oneLabelDate + "\n";
70 }
71 labelC = new Label( 0, i, mergeDate);
72 //将生成的单元格添加到工作表中
73 ws.addCell(labelC);
74 }
75 //写入数据
76 wwb.write();
77
78 } catch (IOException e) {
79 e.printStackTrace();
80 } catch (RowsExceededException e) {
81 e.printStackTrace();
82 } catch (WriteException e) {
83 e.printStackTrace();
84 } finally{
85 try {
86 //关闭工作簿
87 wwb.close();
88 } catch (WriteException e) {
89 // TODO Auto-generated catch block
90 e.printStackTrace();
91 } catch (IOException e) {
92 // TODO Auto-generated catch block
93 e.printStackTrace();
94 }
95 }
96 }
97 }
98 }
sql文件转换为excel文件的更多相关文章
- Json文件转换为Excel文件!涉及读文件,时间戳转化,写文档
一. 思路 今天接到个小任务,让把json文件转换成excel文件,按照列展开. 思路:既然json已经都已经是现成的,那直接将json文件做读操作,在通过不同的key,找到对应的信息,在存到单元格中 ...
- 使用VirtualBox把IMG文件转换为VDI文件
使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...
- python之模块py_compile用法(将py文件转换为pyc文件)
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...
- APNS .p12文件转换为 .pem文件
1:先用mac的钥匙串工具,把APN的推送证书转换为 .p12文件: 2:在mac的终端下 把.p12文件转换为 .pem文件 openssl pkcs12 -in apns-dev-cert.p12 ...
- Python如何实现doc文件转换为docx文件?
Python如何实现doc文件转换为docx文件? 在开发过程中遇到一个关于读写doc和docx的问题: 一个文件夹中有两种文件, 一种为doc结尾, 一种为docx结尾, 需要将这些文件全部重命名. ...
- TensorFlow的checkpoint文件转换为pb文件
由于项目需要,需要将TensorFlow保存的模型从ckpt文件转换为pb文件. import os from tensorflow.python import pywrap_tensorflow f ...
- CSV格式的文件与EXCEL文件的区别
CSV格式的文件与EXCEL文件的区别 Excel CSV 这是一个二进制文件,它保存有关工作簿中所有工作表的信息 CSV代表Comma Separated Values .这是一个纯文本格式,用逗号 ...
- Java读取txt文件、excel文件的方法
Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...
- pl/sql 如何将Excel文件数据导入oracle的数据表?
1.准备导入数据的excel文件 注意:excel列名和数据表列名必须相同,excel文件sheet2和sheet3可以删除 1)excel文件格式 2)数据表格式 2.打开pl/sql ,找到工具- ...
随机推荐
- 通俗易懂方式解说Python中repr(变量)和str(变量)函数的区别
老猿在<Python中repr(变量)和str(变量)的返回值有什么区别和联系>介绍了repr(变量)和str(变量)的区别和联系(对应特殊方法__repr__和__str__),但老猿刚 ...
- PyQt(Python+Qt)学习随笔:QTableWidget的findItems和selectedItems搜索项和访问选中项方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.搜索项 在表格部件中,可以根据文本以及匹配模式来搜索满足条件的项,调用语法: list[QTab ...
- 再次学习sql注入
爆所有数据库 select schema_name from information_schema.schemata 先爆出多少个字段 id = 1 order by ?; mysql5.0及以上 都 ...
- Redis整合MySQL和MyCAT分库组件(来源是我的新书)
MyCAT是一个开源的分布式数据库组件,在项目里,一般用这个组件实现针对数据库的分库分表功能,从而提升对数据表,尤其是大数据库表的访问性能.而且在实际项目里,MyCAT分库分表组件一般会和MySQL以 ...
- 题解-CF429C Guess the Tree
题面 CF429C Guess the Tree 给一个长度为 \(n\) 的数组 \(a_i\),问是否有一棵树,每个节点要么是叶子要么至少有两个儿子,而且 \(i\) 号点的子树大小是 \(a_i ...
- 题解-CF1282E The Cake Is a Lie
题面 CF1282E The Cake Is a Lie \(T\) 组测试数据.每次给一个 \(n\) 边形的三角剖分,求节点顺序和剖分顺序. 数据范围:\(3\le n\le 10^5\),\(\ ...
- Linux 开机启动程序的顺序
1.加载BISO的硬件信息,并取得第一个开机代号 2.读取第一个开机装置的mbr的boot loader的信息 3.加载kernel操作系统核心信息,开始解压缩,并驱动所有硬件装置 4.kernel执 ...
- NPM相关知识点
1.Windows环境变量的配置 npm config set prefix "D:\Program Files\nodejs\node_global" npm config se ...
- STL——容器(deque) deque 的赋值 assign() operator=() swap()
deque 的赋值分下边4种方法: deque.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身.注意该区间是左闭右开的区间. 1 #include <io ...
- Leetcode——练习
平时没事刷刷Leetcode,还办了个年会员.为了自己150刀.为了自己的大脑投资,从不差钱儿.刷刷题能练习coding,此外看一些别人的优秀的答案,能增长见解.大家共同努力,共勉. 十.Google ...