成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

表格java代碼 java 表格

從excel表格讀取數(shù)據(jù)用Java代碼實(shí)現(xiàn)批量上傳寫(xiě)入數(shù)據(jù)庫(kù)

java操作Excel的一種方法:在開(kāi)源世界中,有兩套比較有影響的API可供使用,一個(gè)是POI,一個(gè)是jExcelAPI。其中jExcelAPI是一個(gè)韓國(guó)程序員的作品,雖然沒(méi)有POI那樣血統(tǒng)高貴,但是在使用過(guò)程中,感覺(jué)簡(jiǎn)單方便,對(duì)中文支持非常好,功能也比較強(qiáng)大。它的下載地址是: 當(dāng)前的最高版本是2.4。作者的網(wǎng)站上對(duì)它的特征有如下描述:

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),高州網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:高州等地區(qū)。高州做網(wǎng)站價(jià)格咨詢(xún):18980820575

● 支持Excel 95-2000的所有版本

● 生成Excel 2000標(biāo)準(zhǔn)格式

● 支持字體、數(shù)字、日期操作

● 能夠修飾單元格屬性

● 支持圖像和圖表

搭建環(huán)境

將下載后的文件解悔巖包,得到j(luò)xl.jar,放入classpath,安裝就完成了。

基本操作

一、創(chuàng)建文件

擬生成一個(gè)名為“測(cè)試數(shù)據(jù).xls”的Excel文件,其中第一個(gè)工作表被命名為“第一頁(yè)”,大致效果如下:

代碼(CreateXLS.java):

//生成Excel的類(lèi)

import java.io.*;

import jxl.*;

import jxl.write.*;

public class CreateXLS

{

public static void main(String args[])

{

try

{

//打開(kāi)文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“測(cè)試.xls”));

//生成名為“第一頁(yè)”的工作表,參數(shù)0表示這是第一頁(yè)

WritableSheet sheet=book.createSheet(“第一頁(yè)”,0);

//在Label對(duì)象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)

//以及單元格內(nèi)容為test

Label label=new Label(0,0,”test”);

//將定義好的單元格添加到工作表中

sheet.addCell(label);

/*生成一個(gè)保存數(shù)字的單元格

必須使用Number的完整包路徑,否則有語(yǔ)法歧義

單元格位置是第二列,第一行,值為789.123*/

jxl.write.Number number = new jxl.write.Number(1,0,789.123);

sheet.addCell(number);

//寫(xiě)入數(shù)據(jù)并關(guān)閉文件

book.write();

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

編譯執(zhí)行后,會(huì)在當(dāng)前位置產(chǎn)生一個(gè)Excel文件。

三、讀取文件

以剛才畝運(yùn)我們創(chuàng)建的Excel文件為例,做一個(gè)簡(jiǎn)單的讀取操作,程序代碼如下:

//讀取Excel的類(lèi)

import java.io.*;

import jxl.*;

public class ReadXLS

{

public static void main(String args[])

{

try

{

Workbook book=

Workbook.getWorkbook(new File(“測(cè)試.xls”));

//獲得第一個(gè)工作表對(duì)象

Sheet sheet=book.getSheet(0);

//得到第一列第一行的單元格

Cell cell1=sheet.getCell(0,0);

String result=cell1.getContents();

System.out.println(result);

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

程序執(zhí)行結(jié)果:test

四、修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文迅前梁件的時(shí)候,除了打開(kāi)文件的方式不同之外,其他操作和創(chuàng)建Excel是一樣的。下面的例子是在我們已經(jīng)生成的Excel文件中添加一個(gè)工作表:

//修改Excel的類(lèi),添加一個(gè)工作表

import java.io.*;

import jxl.*;

import jxl.write.*;

public class UpdateXLS

{

public static void main(String args[])

{

try

{

//Excel獲得文件

Workbook wb=Workbook.getWorkbook(new File(“測(cè)試.xls”));

//打開(kāi)一個(gè)文件的副本,并且指定數(shù)據(jù)寫(xiě)回到原文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“測(cè)試.xls”),wb);

//添加一個(gè)工作表

WritableSheet sheet=book.createSheet(“第二頁(yè)”,1);

sheet.addCell(new Label(0,0,”第二頁(yè)的測(cè)試數(shù)據(jù)”));

book.write();

book.close();

}catch(Exception e)

{

System.out.println(e);

}

}

}

執(zhí)行結(jié)果如圖:

高級(jí)操作

一、 數(shù)據(jù)格式化

在Excel中不涉及復(fù)雜的數(shù)據(jù)類(lèi)型,能夠比較好的處理字串、數(shù)字和日期已經(jīng)能夠滿(mǎn)足一般的應(yīng)用。

1、 字串格式化

字符串的格式化涉及到的是字體、粗細(xì)、字號(hào)等元素,這些功能主要由WritableFont和WritableCellFormat類(lèi)來(lái)負(fù)責(zé)。假設(shè)我們?cè)谏梢粋€(gè)含有字串的單元格時(shí),使用如下語(yǔ)句,為方便敘述,我們?yōu)槊恳恍忻罴恿司幪?hào):

WritableFont font1=

new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); ①

WritableCellFormat format1=new WritableCellFormat(font1); ②

Label label=new Label(0,0,”data 4 test”,format1) ③

其中①指定了字串格式:字體為T(mén)IMES,字號(hào)16,加粗顯示。WritableFont有非常豐富的構(gòu)造子,供不同情況下使用,jExcelAPI的java-doc中有詳細(xì)列表,這里不再列出。

②處代碼使用了WritableCellFormat類(lèi),這個(gè)類(lèi)非常重要,通過(guò)它可以指定單元格的各種屬性,后面的單元格格式化中會(huì)有更多描述。

③處使用了Label類(lèi)的構(gòu)造子,指定了字串被賦予那種格式。

在WritableCellFormat類(lèi)中,還有一個(gè)很重要的方法是指定數(shù)據(jù)的對(duì)齊方式,比如針對(duì)我們上面的實(shí)例,可以指定:

//把水平對(duì)齊方式指定為居中

format1.setAlignment(jxl.format.Alignment.CENTRE);

//把垂直對(duì)齊方式指定為居中

format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、單元格操作

Excel中很重要的一部分是對(duì)單元格的操作,比如行高、列寬、單元格合并等,所幸jExcelAPI提供了這些支持。這些操作相對(duì)比較簡(jiǎn)單,下面只介紹一下相關(guān)的API。

1、 合并單元格

WritableSheet.mergeCells(int m,int n,int p,int q);

作用是從(m,n)到(p,q)的單元格全部合并,比如:

WritableSheet sheet=book.createSheet(“第一頁(yè)”,0);

//合并第一列第一行到第六列第一行的所有單元格

sheet.mergeCells(0,0,5,0);

合并既可以是橫向的,也可以是縱向的。合并后的單元格不能再次進(jìn)行合并,否則會(huì)觸發(fā)異常。

2、 行高和列寬

WritableSheet.setRowView(int i,int height);

作用是指定第i+1行的高度,比如:

//將第一行的高度設(shè)為200

sheet.setRowView(0,200); 能夠獲取到j(luò)ava里面那么再封裝保存進(jìn)數(shù)據(jù)庫(kù)也就簡(jiǎn)單了,希望這樣可以幫到你。

java中創(chuàng)建表格的代碼

動(dòng)態(tài)創(chuàng)建表舉租格,比如:str你從數(shù)據(jù)庫(kù)讀出列名,data數(shù)據(jù)集

這里的data是一個(gè)好爛二維數(shù)組,

就像

{{學(xué)號(hào):001,出生:09-01,成績(jī)99}

{學(xué)號(hào):001,出生:09-01,成績(jī)99}

{學(xué)號(hào):001,出生:09-01,成績(jī)99}}

生成表格

學(xué)號(hào) 出生日期 成績(jī)友答漏

001 09-01 99

001 09-01 98

001 09-01 99

java如何導(dǎo)出excel表格,如果用poi,java代碼如何實(shí)現(xiàn).,求代碼!?。?/h2>

項(xiàng)目結(jié)構(gòu):

xls:

\\\

XlsMain .java 類(lèi)

//該類(lèi)有main方法,主要負(fù)責(zé)運(yùn)行程序,同時(shí)該類(lèi)中也包含了用poi讀取Excel(2003版)

*

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**

*

* @author Hongten/br

*

* 參考地址:

*

*/

public class XlsMain {

public static void main(String[] args) throws IOException {

XlsMain xlsMain = new XlsMain();

XlsDto xls = null;

ListXlsDto list = xlsMain.readXls();

try {

XlsDto2Excel.xlsDto2Excel(list);

} catch (Exception e) {

e.printStackTrace();

}

for (int i = 0; i list.size(); i++) {

xls = (XlsDto) list.get(i);

System.out.println(xls.getXh() + " " + xls.getXm() + " "

+ xls.getYxsmc() + " " + xls.getKcm() + " "

+ xls.getCj());

}

}

/**

* 讀取xls文件內(nèi)容

*

* @return ListXlsDto對(duì)象乎畢吵

* @throws IOException

* 輸入/輸出數(shù)巧(i/o)異歲侍常

*/

private ListXlsDto readXls() throws IOException {

InputStream is = new FileInputStream("pldrxkxxmb.xls");

HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

XlsDto xlsDto = null;

ListXlsDto list = new ArrayListXlsDto();

// 循環(huán)工作表Sheet

for (int numSheet = 0; numSheet hssfWorkbook.getNumberOfSheets(); numSheet++) {

HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);

if (hssfSheet == null) {

continue;

}

// 循環(huán)行Row

for (int rowNum = 1; rowNum = hssfSheet.getLastRowNum(); rowNum++) {

HSSFRow hssfRow = hssfSheet.getRow(rowNum);

if (hssfRow == null) {

continue;

}

xlsDto = new XlsDto();

// 循環(huán)列Cell

// 0學(xué)號(hào) 1姓名 2學(xué)院 3課程名 4 成績(jī)

// for (int cellNum = 0; cellNum =4; cellNum++) {

HSSFCell xh = hssfRow.getCell(0);

if (xh == null) {

continue;

}

xlsDto.setXh(getValue(xh));

HSSFCell xm = hssfRow.getCell(1);

if (xm == null) {

continue;

}

xlsDto.setXm(getValue(xm));

HSSFCell yxsmc = hssfRow.getCell(2);

if (yxsmc == null) {

continue;

}

xlsDto.setYxsmc(getValue(yxsmc));

HSSFCell kcm = hssfRow.getCell(3);

if (kcm == null) {

continue;

}

xlsDto.setKcm(getValue(kcm));

HSSFCell cj = hssfRow.getCell(4);

if (cj == null) {

continue;

}

xlsDto.setCj(Float.parseFloat(getValue(cj)));

list.add(xlsDto);

}

}

return list;

}

/**

* 得到Excel表中的值

*

* @param hssfCell

* Excel中的每一個(gè)格子

* @return Excel中每一個(gè)格子中的值

*/

@SuppressWarnings("static-access")

private String getValue(HSSFCell hssfCell) {

if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {

// 返回布爾類(lèi)型的值

return String.valueOf(hssfCell.getBooleanCellValue());

} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {

// 返回?cái)?shù)值類(lèi)型的值

return String.valueOf(hssfCell.getNumericCellValue());

} else {

// 返回字符串類(lèi)型的值

return String.valueOf(hssfCell.getStringCellValue());

}

}

}

XlsDto2Excel.java類(lèi)

//該類(lèi)主要負(fù)責(zé)向Excel(2003版)中插入數(shù)據(jù)

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class XlsDto2Excel {

/**

*

* @param xls

* XlsDto實(shí)體類(lèi)的一個(gè)對(duì)象

* @throws Exception

* 在導(dǎo)入Excel的過(guò)程中拋出異常

*/

public static void xlsDto2Excel(ListXlsDto xls) throws Exception {

// 獲取總列數(shù)

int CountColumnNum = xls.size();

// 創(chuàng)建Excel文檔

HSSFWorkbook hwb = new HSSFWorkbook();

XlsDto xlsDto = null;

// sheet 對(duì)應(yīng)一個(gè)工作頁(yè)

HSSFSheet sheet = hwb.createSheet("pldrxkxxmb");

HSSFRow firstrow = sheet.createRow(0); // 下標(biāo)為0的行開(kāi)始

HSSFCell[] firstcell = new HSSFCell[CountColumnNum];

String[] names = new String[CountColumnNum];

names[0] = "學(xué)號(hào)";

names[1] = "姓名";

names[2] = "學(xué)院";

names[3] = "課程名";

names[4] = "成績(jī)";

for (int j = 0; j CountColumnNum; j++) {

firstcell[j] = firstrow.createCell(j);

firstcell[j].setCellValue(new HSSFRichTextString(names[j]));

}

for (int i = 0; i xls.size(); i++) {

// 創(chuàng)建一行

HSSFRow row = sheet.createRow(i + 1);

// 得到要插入的每一條記錄

xlsDto = xls.get(i);

for (int colu = 0; colu = 4; colu++) {

// 在一行內(nèi)循環(huán)

HSSFCell xh = row.createCell(0);

xh.setCellValue(xlsDto.getXh());

HSSFCell xm = row.createCell(1);

xm.setCellValue(xlsDto.getXm());

HSSFCell yxsmc = row.createCell(2);

yxsmc.setCellValue(xlsDto.getYxsmc());

HSSFCell kcm = row.createCell(3);

kcm.setCellValue(xlsDto.getKcm());

HSSFCell cj = row.createCell(4);

cj.setCellValue(xlsDto.getCj());

(xlsDto.getMessage());

}

}

// 創(chuàng)建文件輸出流,準(zhǔn)備輸出電子表格

OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls");

hwb.write(out);

out.close();

System.out.println("數(shù)據(jù)庫(kù)導(dǎo)出成功");

}

}

XlsDto .java類(lèi)

//該類(lèi)是一個(gè)實(shí)體類(lèi)

public class XlsDto {

/**

* 選課號(hào)

*/

private Integer xkh;

/**

* 學(xué)號(hào)

*/

private String xh;

/**

* 姓名

*/

private String xm;

/**

* 學(xué)院

*/

private String yxsmc;

/**

* 課程號(hào)

*/

private Integer kch;

/**

* 課程名

*/

private String kcm;

/**

* 成績(jī)

*/

private float cj;

public Integer getXkh() {

return xkh;

}

public void setXkh(Integer xkh) {

this.xkh = xkh;

}

public String getXh() {

return xh;

}

public void setXh(String xh) {

this.xh = xh;

}

public String getXm() {

return xm;

}

public void setXm(String xm) {

this.xm = xm;

}

public String getYxsmc() {

return yxsmc;

}

public void setYxsmc(String yxsmc) {

this.yxsmc = yxsmc;

}

public Integer getKch() {

return kch;

}

public void setKch(Integer kch) {

this.kch = kch;

}

public String getKcm() {

return kcm;

}

public void setKcm(String kcm) {

this.kcm = kcm;

}

public float getCj() {

return cj;

}

public void setCj(float cj) {

this.cj = cj;

}

}

后臺(tái)輸出:

數(shù)據(jù)庫(kù)導(dǎo)出成功

1.0 hongten 信息技術(shù)學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ) 80.0

2.0 王五 信息技術(shù)學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ) 81.0

3.0 李勝基 信息技術(shù)學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ) 82.0

4.0 五班古 信息技術(shù)學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ) 83.0

5.0 蔡詩(shī)蕓 信息技術(shù)學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ) 84.0

文章標(biāo)題:表格java代碼 java 表格
網(wǎng)頁(yè)鏈接:http://jinyejixie.com/article32/ddpiisc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、ChatGPT微信公眾號(hào)、Google、建站公司、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
砚山县| 沙雅县| 宁远县| 台中县| 邹平县| 北海市| 马山县| 铜山县| 梁平县| 沈丘县| 克东县| 堆龙德庆县| 西乌珠穆沁旗| 百色市| 福建省| 阜新| 池州市| 塔城市| 南通市| 四川省| 波密县| 库车县| 陇西县| 西青区| 玉田县| 巴林左旗| 宁化县| 方城县| 广元市| 内江市| 双流县| 叙永县| 诸城市| 怀安县| 武安市| 堆龙德庆县| 开远市| 郯城县| 普洱| 兴文县| 盐山县|