導航:首頁 > 編程語言 > javaexcel工具

javaexcel工具

發布時間:2025-03-22 09:57:59

java怎麼操作excel合並單元格

利用java操作Excel,有個開源的東東-jxl.jar,可以到http://sourceforge.net/project/showfiles.php?group_id=79926下載。
一.讀取Excel文件內容
java 代碼

public static String readExcel(File file){
StringBuffer sb = new StringBuffer();

Workbook wb = null;
try {
//構造Workbook(工作薄)對象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

if(wb==null)
return null;

//獲得了Workbook對象之後,就可以通過它得到Sheet(工作表)對象了
Sheet[] sheet = wb.getSheets();

if(sheet!=null&&sheet.length>0){
//對每個工作表進行循環
for(int i=0;i
//得到當前工作表的行數
int rowNum = sheet[i].getRows();
for(int j=0;j
//得到當前行的所有單元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
//對每個單元格進行循環
for(int k=0;k
//讀取當前單元格的值
String cellValue = cells[k].getContents();
sb.append(cellValue+"\t");
}
}
sb.append("\r\n");
}
sb.append("\r\n");
}
}
//最後關閉資源,釋放內存
wb.close();
return sb.toString();
}
二.寫入Excel文件
這里有很多格式了,比如文本內容加粗,加上某些顏色等,可以參考jxl的api,同時還推薦一篇不錯的文章:http://www.ibm.com/developerworks/cn/java/l-javaExcel/?ca=j-t10
java 代碼

public static void writeExcel(String fileName){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook類的工廠方法創建一個可寫入的工作薄(Workbook)對象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//創建一個可寫入的工作表
//Workbook的createSheet方法有兩個參數,第一個是工作表的名稱,第二個是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);

//下面開始添加單元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//這里需要注意的是,在Excel中,第一個參數表示列,第二個表示行
Label labelC = new Label(j, i, "這是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//將生成的單元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}

}
}

try {
//從內存中寫入文件中
wwb.write();
//關閉資源,釋放內存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
三.在一個Excel文件中查找是否包含某一個關鍵字
java 代碼

public static boolean searchKeyWord(File file,String keyWord){
boolean res = false;

Workbook wb = null;
try {
//構造Workbook(工作薄)對象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
return res;
} catch (IOException e) {
return res;
}

if(wb==null)
return res;

//獲得了Workbook對象之後,就可以通過它得到Sheet(工作表)對象了
Sheet[] sheet = wb.getSheets();

boolean breakSheet = false;

if(sheet!=null&&sheet.length>0){
//對每個工作表進行循環
for(int i=0;i
if(breakSheet)
break;

//得到當前工作表的行數
int rowNum = sheet[i].getRows();

boolean breakRow = false;

for(int j=0;j
if(breakRow)
break;
//得到當前行的所有單元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
boolean breakCell = false;
//對每個單元格進行循環
for(int k=0;k
if(breakCell)
break;
//讀取當前單元格的值
String cellValue = cells[k].getContents();
if(cellValue==null)
continue;
if(cellValue.contains(keyWord)){
res = true;
breakCell = true;
breakRow = true;
breakSheet = true;
}
}
}
}
}
}
//最後關閉資源,釋放內存
wb.close();

return res;
}
四.往Excel中插入圖片圖標
插入圖片的實現很容易,參看以下代碼:
java 代碼

public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
int height, File imgFile){
WritableImage img = new WritableImage(col, row, width, height, imgFile);
dataSheet.addImage(img);
}
以上代碼的注釋已經很清楚了,大概也就不用再解釋了,我們可以用如下程序驗證:
java 代碼
try {
//創建一個工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//待插入的工作表
WritableSheet imgSheet = workbook.createSheet("Images",0);
//要插入的圖片文件
File imgFile = new File("D:/1.png");
//圖片插入到第二行第一個單元格,長寬各佔六個單元格
insertImg(imgSheet,0,1,6,6,imgFile);
workbook.write();
workbook.close();
catch (IOException e) {
e.printStackTrace();
catch (WriteException e) {
e.printStackTrace();
但是jxl只支持png格式的圖片,jpg格式和gif格式都不支持
五.插入頁眉頁腳
一般的頁眉頁腳都分為三個部分,左,中,右三部分,利用如下代碼可實現插入頁眉頁腳
java 代碼

public static void setHeader(WritableSheet dataSheet,String left,String center,String right){
HeaderFooter hf = new HeaderFooter();
hf.getLeft().append(left);
hf.getCentre().append(center);
hf.getRight().append(right);
//加入頁眉
dataSheet.getSettings().setHeader(hf);
//加入頁腳
//dataSheet.getSettings().setFooter(hf);
}
我們可以用如下代碼測試該方法:
java 代碼
try {
//創建一個工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//待插入的工作表
WritableSheet dataSheet = workbook.createSheet("加入頁眉",0);
ExcelUtils.setHeader(dataSheet, "chb", "2007-03-06", "第1頁,共3頁");
workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}

合並單元格:
//首先創建一個sheet
WritableSheet sheetWrite=writeWorkbook.createSheet("sheet的名稱",0);
//把 單元格(column, row)到單元格(column1, row1)進行合並。
sheetWrite.mergeCells(column, row, column1, row1);

java 操作excel,jxl加邊框,jxl合並單元格,單元格的設置,單元
WritableCellFormat headerFormat = new WritableCellFormat(
HEADER_FONT_STYLE);
//水平居中對齊
headerFormat.setAlignment(Alignment.CENTRE);
//豎直方向居中對齊
headerFormat.setVerticalAlignment
(VerticalAlignment.CENTRE);

//建立標簽,參數依次為:列索引、行索引、內容、格式
Label seqLabel = new Label(0, 0, "序號", headerFormat);
//增加單元格
sheet.addCell(seqLabel);
//合並單元格,參數依次為:列索引、行索引、列索引+需要合並
的列的個數、行索引+需要合並的行的個數
sheet.mergeCells(0, 0, 0, 1);
//設置單元格寬度,以字元為單位
sheet.setColumnView(0, "序號".length() + 10);
Label basicInfoLabel = new Label(1, 0, "基本信息",
headerFormat);
sheet.addCell(basicInfoLabel);
sheet.mergeCells(1, 0, 3, 0);//合並垮了3行。
sheet.mergeCells(1, 1, 1, 3);//合並垮了3列。

label = new Label(0, 1, "蘋果」);
sheet.mergeCells(0,1, 0, 3- 1);//合並垮了3列。
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
// 垂直居中
label.setCellFormat(cellFormat);
sheet.addCell(label);
註:再次使cellFormat時,需要重新NEW WritableCellFormat 。

❷ Java 緇橢xcel娣誨姞鏁板瓧絳懼悕 Excel VBA浣跨敤鏁板瓧絳懼悕


Java 緇橢xcel娣誨姞鏁板瓧絳懼悕 Excel VBA浣跨敤鏁板瓧絳懼悕銆侲xcel涓鍙娣誨姞鏁板瓧絳懼悕浠ヤ緵鏂囨。鎵鏈夎呯敵鏄庢枃妗g殑鎵鏈夋潈鎴栨湁鏁堟с備笅闈浠嬬粛濡備綍鍦↗ava紼嬪簭浠g爜涓瀹炵幇緇橢xcel宸ヤ綔綈挎坊鍔犵懼悕銆
宸ュ叿/鏉愭枡
Excel鐗堟湰錛2013
緙栬瘧鐜澧冿細IntelliJ IDEA2018
JDK鐗堟湰錛1.8.0
Excel搴撳伐鍏鳳細spire.xls.jar 4.3.4
鏁板瓧璇佷功鍙婂瘑鐮
鎿嶄綔鏂規硶
01
鍦↖DEA欏圭洰鏂囦歡澶硅礬寰勪笅錛屽瓨鍏ヤ竴涓狤xcel鏂囦歡錛岀増鏈涓2013鐗堟湰鐨剎lsx鏂囦歡;浠ュ強宸茬煡瀵嗙爜鐨刾fx鏍煎紡鐨勬暟瀛楄瘉涔︺傚傚浘錛
02
鍦╥dea欏圭洰寮曞叆excel搴撳伐鍏穝pire.xls.jar鐨勫寘錛屽傚浘錛
03
鍦ㄧ▼搴忎腑閿鍏ュ備笅浠g爜錛
import com.spire.xls.*;
import com.spire.xls.digital.CertificateAndPrivateKey;
import java.util.Date;
public class AddSignature {
public static void main(String[] args) throws Exception {
//鍔犺澆Excel宸ヤ綔綈
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//娣誨姞鏁板瓧絳懼悕
wb.addDigitalSignature(new CertificateAndPrivateKey("cer.pfx","123654yes!"), "The Author is Mia",new Date());
//淇濆瓨鏂囨。
wb.saveToFile("AddSignature.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
04
鎵ц岀▼搴忥紝鐢熸垚鏂囨。銆傚湪緇撴灉鏂囨。涓鏌ョ湅絳懼悕娣誨姞鏁堟灉錛
1. 娣誨姞絳懼悕
import com.spire.xls.*;
import com.spire.xls.digital.CertificateAndPrivateKey;
import java.util.Date;
public class AddSignature {
public static void main(String[] args) throws Exception {
//鍔犺澆Excel宸ヤ綔綈
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//娣誨姞鏁板瓧絳懼悕
wb.addDigitalSignature(new CertificateAndPrivateKey("cer.pfx","123654yes!"), "The Author is Mia",new Date());
//淇濆瓨鏂囨。
wb.saveToFile("AddSignature.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
2.媯嫻嬫槸鍚︾懼悕
import com.spire.xls.*;
public class DetectSignature {
public static void main(String[] args) {
//鍔犺澆Excel宸ヤ綔綈
Workbook wb = new Workbook();
wb.loadFromFile("AddSignature.xlsx");
//鍒ゆ柇鏂囨。鏄鍚︾懼悕
boolean signature = wb.isDigitallySigned();
if(signature==true)
{
System.out.println("鏂囨。宸茬懼悕!");
}
else
{
System.out.println("鏈絳懼悕鏂囨。!");
}
}
}
3.鍒犻櫎絳懼悕
import com.spire.xls.*;
public class RemoveSignature {
public static void main(String[] args) {
//鍔犺澆Excel宸ヤ綔綈
Workbook wb = new Workbook();
wb.loadFromFile("AddSignature.xlsx");
//鍒犻櫎絳懼悕
wb.removeAllDigitalSignatures();
//淇濆瓨鏂囨。
wb.saveToFile("RemoveSignature.xlsx",ExcelVersion.Version2013);
wb.dispose();
}
}
鎵ц岀▼搴忎唬鐮佸悗錛岀敓鎴愮殑緇撴灉鏂囨。涓涓嶅啀鏈夌懼悕銆
鐗瑰埆鎻愮ず
浠g爜涓鐨勮礬寰勪負IDEA欏圭洰鏂囦歡澶硅礬寰勶紝璺寰勪篃鍙鍙﹀栬嚜瀹氫箟銆

閱讀全文

與javaexcel工具相關的資料

熱點內容
小說網站正版授權分成源碼 瀏覽:291
蘋果手機app閃退是什麼原因 瀏覽:784
安卓面試演算法題 瀏覽:700
idle中怎麼查看類庫源碼 瀏覽:302
雲伺服器購買租賃費用 瀏覽:617
linuxrename文件名 瀏覽:544
程序員凌晨三點不回家 瀏覽:70
牛宏偉手指速演算法 瀏覽:984
方維眾籌源碼v17 瀏覽:566
centos建php網站 瀏覽:877
excel自定義演算法 瀏覽:611
六個文件夾怎麼壓縮 瀏覽:520
美國伺服器怎麼設置漢語 瀏覽:304
重慶雲伺服器雲計算 瀏覽:369
加密貨幣目標價 瀏覽:152
手機12g的文件哪裡解壓 瀏覽:708
樂視伺服器異常是怎麼回事 瀏覽:585
深入理解linux網路pdf 瀏覽:796
python取字典的value 瀏覽:405
php安裝bcmath 瀏覽:386