最近经常需要把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文件的更多相关文章

  1. Json文件转换为Excel文件!涉及读文件,时间戳转化,写文档

    一. 思路 今天接到个小任务,让把json文件转换成excel文件,按照列展开. 思路:既然json已经都已经是现成的,那直接将json文件做读操作,在通过不同的key,找到对应的信息,在存到单元格中 ...

  2. 使用VirtualBox把IMG文件转换为VDI文件

    使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...

  3. python之模块py_compile用法(将py文件转换为pyc文件)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块py_compile用法(将py文件转换为pyc文件):二进制文件,是由py文件经过编译后 ...

  4. APNS .p12文件转换为 .pem文件

    1:先用mac的钥匙串工具,把APN的推送证书转换为 .p12文件: 2:在mac的终端下 把.p12文件转换为 .pem文件 openssl pkcs12 -in apns-dev-cert.p12 ...

  5. Python如何实现doc文件转换为docx文件?

    Python如何实现doc文件转换为docx文件? 在开发过程中遇到一个关于读写doc和docx的问题: 一个文件夹中有两种文件, 一种为doc结尾, 一种为docx结尾, 需要将这些文件全部重命名. ...

  6. TensorFlow的checkpoint文件转换为pb文件

    由于项目需要,需要将TensorFlow保存的模型从ckpt文件转换为pb文件. import os from tensorflow.python import pywrap_tensorflow f ...

  7. CSV格式的文件与EXCEL文件的区别

    CSV格式的文件与EXCEL文件的区别 Excel CSV 这是一个二进制文件,它保存有关工作簿中所有工作表的信息 CSV代表Comma Separated Values .这是一个纯文本格式,用逗号 ...

  8. Java读取txt文件、excel文件的方法

    Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...

  9. pl/sql 如何将Excel文件数据导入oracle的数据表?

    1.准备导入数据的excel文件 注意:excel列名和数据表列名必须相同,excel文件sheet2和sheet3可以删除 1)excel文件格式 2)数据表格式 2.打开pl/sql ,找到工具- ...

随机推荐

  1. 威联通(NAS)搭建个人音乐中心

    我为什么要自己搭建音乐服务 曾记得早些年,音乐是可以随便在线听,随便下载的,没有付费这么一说的(背后是音乐平台提供的版权支持).我们听音乐也就可以很随意,但是这几年,音乐的版权开始管理的严禁,音乐没地 ...

  2. 题解-CF708D Incorrect Flow

    题面 CF708D Incorrect Flow 给一张网络流图,可能有流量不守恒或者流量超过容量的情况,求最少的将某条边流量或容量 \(\pm 1\) 的操作次数使得网络流图正确. 数据范围:\(1 ...

  3. Android FART脱壳机流程分析

    本文首发于安全客 链接:https://www.anquanke.com/post/id/219094 0x1 前言 在Android平台上,程序员编写的Java代码最终将被编译成字节码在Androi ...

  4. Springboot websocket学习Demo

    使用的是springboot2.1.4版本 <parent> <groupId>org.springframework.boot</groupId> <art ...

  5. Json处理方式记录

    1.可以直接使用Parse方法 JObject jObject = JObject.Parse(res); string mediaId = jObject["media_id"] ...

  6. 珍藏的C语言编程系列教程

    本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...

  7. Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置

    1. Mycat简介 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  8. 有了Git这个功能,再也不需要依赖IDE了!

    大家好,今天给大家介绍一个隐藏的功能--搜索. 我们在写代码的时候经常遇到的一种情况就是,我们想要知道某一个函数是怎么定义的,这样我们才能知道该如何调用它.如果代码少的话我们当然可以自己人肉查找,但是 ...

  9. 配置OSPF与BFD联动

    组网图形 OSPF与BFD联动简介 双向转发检测BFD(Bidirectional Forwarding Detection)是一种用于检测转发引擎之间通信故障的检测机制.BFD对两个系统间的.同一路 ...

  10. Spark-4-为何要处理数据倾斜

    什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜. 何谓数据倾斜?数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Part ...