最近经常需要把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. PyQt(Python+Qt)学习随笔:QListWidget对项进行排序的sortItems方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListWidget的sortItems方法用于对列表部件中所有项按参数进行排序,相关调用语法如下 ...

  2. Python妙用re.sub分析正则表达式匹配过程

    声明:本文所使用方法为老猿自行研究并编码,相关代码版权为老猿所有,禁止转载文章,代码禁止用于商业用途! 在<第11.23节 Python 中re模块的搜索替换功能:sub及subn函数>介 ...

  3. csv文件的写操作

    import csv sumbmit_csv_path = "submit_have_valid_SGD.csv" with open(sumbmit_csv_path, &quo ...

  4. 美国SEC主席离任,Panda Global 前瞻数字资产监管政策变化

    在上上个周末,也就是6月20号,美国的证券行业发生了一件值得反复回味的的事情--美国SEC现任主席Jay Clayton宣布即将离任,对于数字资产行业而言,未来监管政策将如何演变突然有了无限的遐想空间 ...

  5. CF1457D XOR-gun

    这道题真的把我秀到了,我首先猜了一波结论,打了一个可持久化 \(\text{Trie}\) 加二分的两只 \(\log_2\) 的做法,发现不能 \(PP\) ,然后就一直改到比赛结束还没改过. 然后 ...

  6. HDFS 操作命令

    本地文件系统创建一个文件,输入带姓名学号信息. 查看新建文件所在目录 查看新建文件内容 将此文件上传到HDFS文件系统上的用户目录 HDFS上查看相应目录 HDFS上查看文件内容 HDFS上查看文件大 ...

  7. STL(标准模板库)

    STL 主要分为三类: container(容器) - 用来管理一组数据元素 lterator(迭代器) - 可遍历STL容器内全部或部分元素的对象 algorithm(算法) - 对数据进行处理(解 ...

  8. 解决IDEA Maven下载依赖包速度慢问题

    右键项目,maven选项,"Open setting.xml"或"Create setting.xml",在 mirrors 节点添加下面代码. <mir ...

  9. UML—20—001

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...

  10. 细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!

    @ 目录 1. Thymeleaf 简介 2. 整合 Spring Boot 2.1 基本用法 2.2 手动渲染 3. Thymeleaf 细节 3.1 标准表达式语法 3.1.1 简单表达式 3.1 ...