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 ,找到工具- ...
随机推荐
- 第8.33节 Python中__getattr__以及__getattr__与__ getattribute__的关系深入剖析
一. 引言 前面几节分别介绍了Python中属性操作捕获的三剑客:__ getattribute__方法.__setattr__方法.__delattr__方法,为什么__ getattribute_ ...
- PyQt学习随笔:使用QPropertyAnimation开发简单动画
QPropertyAnimation是PyQt5.QtCore模块提供的动画设计类,使用该类可以针对PyQt的界面对象进行动画播放,如果要针对一个指定对象进行动画播放,包括如下步骤: 一.创建动画对象 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- Java面试专题-多线程(3)-原子操作
- 小程序使用动画时的 px 单位 转 rpx的方法
借助API wx.getSystemInfoSync(); 通过API可获取的值: // 在 iPhone6 下运行: var systemInfo = wx.getSystemInfoSync(); ...
- Acwing 734. 能量石
贪心(微扰) + dp 这道题还是比较难的,前置知识: 贪心的微扰(邻项交换)证法,例题:国王游戏,耍杂技的牛 01背包 算法1:暴力\(O(T * n! * n)\) 可以\(dfs\)全排列枚举所 ...
- SSM框架中常用的注解及含义
@Controller---使用它标记在一个类上,dispatcher会扫描使用该注解类的方法,并检测该方法是否使用了@RequestMapping注解,加上RequestMapping注解的方法才是 ...
- 零基础学习python 你该怎么做
本人文科生,回顾自己近 2 年的Python 自学经历,有一些学习心得和避坑经验分享给大家,让大家在学习 Python 的过程中少走一些弯路!减少遇到不必要的学习困难! 首先,最开始最大的困难应该就是 ...
- gitlab+jenkins 持续部署自动化测试
背景:为了减少测试部署时间和减少不必要的重复工作,采用持续集成的方式进行部署,当gitlab的release (测试)分支有代码变动时,自动拉取代码部署测试环境,并进行接口回归测试 优点:部署自动化, ...
- 如何自定义Kubernetes资源
目前最流行的微服务架构非Springboot+Kubernetes+Istio莫属, 然而随着越来越多的微服务被拆分出来, 不但Deploy过程boilerplate的配置越来越多, 且繁琐易错, 维 ...