国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

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

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Jexcel實(shí)現(xiàn)按一定規(guī)則分割excel文件的方法

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

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

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

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

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

?
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對(duì)象之后,就可以通過(guò)它得到Sheet(工作表)對(duì)象了
   InputStream is = new FileInputStream("C:/excel/excel.xls");
   wb = Workbook.getWorkbook(is);
   // 獲得第一個(gè)工作表對(duì)象
   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; //工作表行游標(biāo)
   int fileCounts = 1; //用來(lái)標(biāo)識(shí)創(chuàng)建的excel文檔數(shù)目
   while(counter<rows-1) {
    //得到counter行的所有單元格
    Cell[] rowCells = sheet.getRow(counter);
    Cell cell0 = rowCells[0];
    //判斷單元格內(nèi)容的類(lèi)型
    if(cell0.getType() == CellType.LABEL) {
     System.out.println("正在解析第 " + fileCounts + " 個(gè)文件....");
     //新建一個(gè)excel文檔
     File file = new File("C:/excel/excel" + fileCounts + ".xls");
     WritableWorkbook wwb = Workbook.createWorkbook(file);
     //設(shè)置excel文檔的工作表
     WritableSheet ws = wwb.createSheet("sheet1", 0);
     //第一行合并第0到第8列
     ws.mergeCells(0, 0, 8, 0);
     //設(shè)置第7,8,9列的列寬
     ws.setColumnView(6, 10);
     ws.setColumnView(7, 45);
     ws.setColumnView(8, 27);
     //向新建的表中寫(xiě)入數(shù)據(jù),首先第一行先寫(xiě)入標(biāo)題
     for(int k=0; k<rowCells.length; k++) {
      //創(chuàng)建WritableFont對(duì)象用來(lái)格式化字體,這里是20號(hào)宋體,加粗
      WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 20, WritableFont.BOLD, false);
      //使用WritableFont創(chuàng)建單元格格式化對(duì)象
      WritableCellFormat wcf = new WritableCellFormat(wf);
      //設(shè)置水平對(duì)齊方式
      wcf.setAlignment(Alignment.CENTRE);
      //設(shè)置垂直對(duì)齊方式
      wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
      //設(shè)置邊框和顏色
      wcf.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
      Cell cell = rowCells[k];
      Label label = new Label(k,0,cell.getContents(),wcf);
      //添加單元格到表中
      ws.addCell(label);
      //設(shè)置第一行的行高
      ws.setRowView(0, 30*20, false);
     }
     //向新建的表中寫(xiě)入數(shù)據(jù),第二行寫(xiě)入表頭
     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; //用來(lái)遍歷50
     counter++; //將游標(biāo)移動(dòng)到下一行
     if(counter == 1) //如果游標(biāo)到了第二行 ,就自動(dòng)把游標(biāo)移動(dòng)到第三行,第二行不需要處理
      counter = 2;
     int rowIndex = 2; //每篇excel文檔的游標(biāo)
     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);
      }
      //用來(lái)處理備注列的邊框
      {
       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(); //關(guān)閉Workbook對(duì)象
  }
 }
}

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
304
主站蜘蛛池模板: 韩国成人精品a∨在线观看 欧美精品综合 | 国产精品成人一区二区三区夜夜夜 | 一本一道久久精品综合 | 色女人av | 成人在线免费小视频 | 欧美精品亚洲 | 精品久久久久久国产 | 亚洲国产激情 | 欧美精品一区在线 | 久久久影视 | 国产高清视频在线 | 成年人免费小视频 | 久久国产精品二区 | 一大道一二三区不卡 | 亚洲精品久久 | 国产欧美日韩综合精品一区二区 | 最近韩国日本免费高清观看 | 久久av网 | 欧美激情国产精品 | 99视频精品在线 | 国产精品久久国产精品 | 久久久亚洲成人 | 国产欧美综合一区二区三区 | 国产精国产精品 | 夜夜操天天干, | 国产色区 | 国产成人av在线 | 欧美视频一区二区 | 日韩国产一区二区 | 动漫卡通精品一区二区三区介绍 | 超碰人人爱人人 | 亚洲社区在线 | 久久合 | 国产精品爱久久久久久久 | av色伊人久久综合一区二区 | 春色网站 | 精品福利一区二区三区 | 一级黄片毛片 | 日本高清无卡码一区二区久久 | 91av导航 | 精品久久久久久久久久久久久久 |