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 ,找到工具- ...
随机推荐
- 老猿学5G扫盲贴:N6接口用户平面协议栈对应的网络分层模型
在网络通信模型中,都对应有分层的网络结构,如开放式系统互联(OSI)的七层模型(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层)以及TCP/IP四层(网络接口层.网络层.传输层和应用层)模 ...
- 第8.32节 Python中重写__delattr__方法捕获属性删除
一. 引言 上节介绍了__delattr__方法在Python清除实例属性时被捕获执行,本节结合例子介绍重写__delattr__方法,并说明__delattr__方法执行的触发逻辑. 二. 重写__ ...
- RedHat操作指令第4篇
top(查看动态进程运行情况) top 是一个更加有用的命令,可以监视系统中不同的进程所使用的资源.它提供实时的系统状态信息. 显示进程的数据包括 PID.进程属主.优先级.%CPU.%memory等 ...
- OLLVM快速学习
近来,ollvm在国内移动安全,尤其是安全加固上的使用越来越广泛,ollvm的混淆和反混淆也被视为比较高等的知识之一,让很多人感到无从下手,望尘莫及.如果你在google上搜索ollvm,你会发现第一 ...
- Panda交易所获悉,五地股权市场获批参与「区块链建设试点」
Panda交易所获悉,北京市地方金融监督管理局官网于7月21日发布信息显示,"证监会发布<关于原则同意北京.上海.江苏.浙江.深圳等5家区域性股权市场开展区块链建设工作的函>,原 ...
- 【题解】「SP867」 CUBES - Perfect Cubes
这道题明显是一道暴力. 暴力枚举每一个 \(a, b, c, d\) 所以我就写了一个暴力.每个 \(a, b, c, d\) 都从 \(1\) 枚举到 \(100\) #include<ios ...
- NetCDF格式.nc
netcdf sfc_pres_temp { dimensions: latitude = 6 ; //纬度轴 longitude = 12 ; //经度轴 variables: float lati ...
- 2020高考倒计时!全屏向下滑动设计HTML源码
全屏竖向滑动效果,自适应,多终端 全国高考倒计时,音乐自动播放. 背景图片:img目录下替换bg.jpg 背景音乐:audio目录下替换song.mp3 原本按照正常情况下每年的6月7.8日就是全国 ...
- 6个JS特效教程,学完即精通
6个JS特效教程,学完即精通 JavaScript特效教程,学完你就能写任何特效.本课程将JavaScript.BOM.DOM.jQuery和Ajax课程中的各种网页特效提取出了再进行汇总.内容涵盖了 ...
- VMware Workstation 16中安装macOS Big Sur,AMD版
VMware Workstation 16中安装macOS Big Sur,AMD版 目录 VMware Workstation 16中安装macOS Big Sur,AMD版 准备阶段 步骤一:安装 ...