一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法

Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法

2019-12-27 12:51鑒客 JAVA教程

這篇文章主要介紹了Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法,涉及java操作Excel文件的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Jexcel實現(xiàn)按一定規(guī)則分割excel文件的方法。分享給大家供大家參考。具體如下:

現(xiàn)有一個excel文檔,需要讀取它并按照一定的規(guī)則,分割之,分割出來的每一段記錄需要單獨創(chuàng)建一個excel文檔并寫入其中,一定要保證單元格格式的一致性。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package edu.bjut.zhutong.excelParser;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelParser {
 public static void main(String[] args) {
  Workbook wb = null;
  try {
   //獲得了Workbook對象之后,就可以通過它得到Sheet(工作表)對象了
   InputStream is = new FileInputStream("C:/excel/excel.xls");
   wb = Workbook.getWorkbook(is);
   // 獲得第一個工作表對象
   Sheet sheet = wb.getSheet(0);
   //獲得工作表的行數(shù)和列數(shù)
   int rows = sheet.getRows();
   int cols = sheet.getColumns();
   System.out.println("一共 " + rows + " 行");
   System.out.println("一共 " + cols + " 列");
   int counter = 0; //工作表行游標
   int fileCounts = 1; //用來標識創(chuàng)建的excel文檔數(shù)目
   while(counter<rows-1) {
    //得到counter行的所有單元格
    Cell[] rowCells = sheet.getRow(counter);
    Cell cell0 = rowCells[0];
    //判斷單元格內(nèi)容的類型
    if(cell0.getType() == CellType.LABEL) {
     System.out.println("正在解析第 " + fileCounts + " 個文件....");
     //新建一個excel文檔
     File file = new File("C:/excel/excel" + fileCounts + ".xls");
     WritableWorkbook wwb = Workbook.createWorkbook(file);
     //設置excel文檔的工作表
     WritableSheet ws = wwb.createSheet("sheet1", 0);
     //第一行合并第0到第8列
     ws.mergeCells(0, 0, 8, 0);
     //設置第7,8,9列的列寬
     ws.setColumnView(6, 10);
     ws.setColumnView(7, 45);
     ws.setColumnView(8, 27);
     //向新建的表中寫入數(shù)據(jù),首先第一行先寫入標題
     for(int k=0; k<rowCells.length; k++) {
      //創(chuàng)建WritableFont對象用來格式化字體,這里是20號宋體,加粗
      WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 20, WritableFont.BOLD, false);
      //使用WritableFont創(chuàng)建單元格格式化對象
      WritableCellFormat wcf = new WritableCellFormat(wf);
      //設置水平對齊方式
      wcf.setAlignment(Alignment.CENTRE);
      //設置垂直對齊方式
      wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
      //設置邊框和顏色
      wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
      Cell cell = rowCells[k];
      Label label = new Label(k,0,cell.getContents(),wcf);
      //添加單元格到表中
      ws.addCell(label);
      //設置第一行的行高
      ws.setRowView(0, 30*20, false);
     }
     //向新建的表中寫入數(shù)據(jù),第二行寫入表頭
     for(int c=0; c<cols; c++) {
      String colCon = sheet.getCell(c, 1).getContents();
      WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 12, WritableFont.BOLD, false);
      WritableCellFormat wcf = new WritableCellFormat(wf);
      wcf.setAlignment(Alignment.CENTRE);
      wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
      wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
      ws.addCell(new Label(c,1,colCon,wcf));
      ws.setRowView(1, 18*20, false);
     }
     int rowCounts = 1; //用來遍歷50
     counter++; //將游標移動到下一行
     if(counter == 1) //如果游標到了第二行 ,就自動把游標移動到第三行,第二行不需要處理
      counter = 2;
     int rowIndex = 2; //每篇excel文檔的游標
     rowCells = sheet.getRow(counter);
     cell0 = rowCells[0];
     while(cell0.getType() == CellType.NUMBER && counter<rows-1) {
      rowCells = sheet.getRow(counter);
      for(int k=0; k<rowCells.length; k++) {
       WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 12, WritableFont.NO_BOLD, false);
       WritableCellFormat wcf = new WritableCellFormat(wf);
       wcf.setAlignment(Alignment.CENTRE);
       wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
       wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
       Label label = new Label(k,rowIndex,rowCells[k].getContents(),wcf);
       ws.addCell(label);
      }
      //用來處理備注列的邊框
      {
       WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 12, WritableFont.NO_BOLD, false);
       WritableCellFormat wcf = new WritableCellFormat(wf);
       wcf.setAlignment(Alignment.CENTRE);
       wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
       wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
       Label label = new Label(8,rowIndex,"",wcf);
       ws.addCell(label);
      }
      ws.setRowView(rowIndex, 18*20, false);
      rowIndex++;
      counter++;
      cell0 = sheet.getRow(counter)[0];
     }
     wwb.write();
     wwb.close();
     fileCounts++;
    }
   }
   System.out.println("程序執(zhí)行結(jié)束....");
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (BiffException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } catch (RowsExceededException e) {
   e.printStackTrace();
  } catch (WriteException e) {
   e.printStackTrace();
  } finally {
   wb.close(); //關閉Workbook對象
  }
 }
}

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产91免费在线 | 99久久综合精品免费 | 欧美一级视频在线高清观看 | 国产视频a区 | 日本网络视频www色高清免费 | 国产精品第 | 动态图啪啪120秒免费看 | 牛牛在线观看 | sss亚洲国产欧美一区二区 | 99精品全国免费7观看视频 | 91香蕉视频在线观看 | 美女国内精品自产拍在线播放 | 美女gif趴跪式抽搐动态图 | 欧美日韩精品一区二区三区视频在线 | 免费国产高清精品一区在线 | 天海翼最新作品 | 明星乱淫 | 拔插拔插成人 | 欧美综合一区二区三区 | 午夜理论电影在线观看亚洲 | 91精品久久国产青草 | 十大网站免费货源 | 啪啪免费网址 | 欧美日韩国产成人综合在线 | 欧美男同video | 久久午夜一区二区 | 91精品国产品国语在线不卡 | 日本小视频免费 | 欧美贵妇vs高跟办公室 | 国产人成77777视频网站 | 秋霞一级成人欧美理论 | 洗濯屋动漫在线观看 | 免费在线观看日本 | 国产高清在线不卡 | 欧美高清日韩 | 亚洲国产精品第一页 | 亚偷熟乱区视频在线观看 | 国产婷婷成人久久av免费高清 | 情缘免费观看完整版 | ipx 在线播放 | 美女艹b|