1. 程式人生 > >JXL匯出EXCEL合併單元格、文字對齊方式

JXL匯出EXCEL合併單元格、文字對齊方式

這次能做出來,主要是感謝各位在網上提供的資料,在此記錄

匯出的結果是,大家看哈,若有可取之處可繼續


程式碼比較多,大家主要看哈我用紅色標註部分即可

----------------------------------------------------------------------------程式碼分割線-------------------------------------------------

public void createNoLotteryAlarmExcel(String filePath,String fileName,List<NoLotteryAlarm> alarmLimits) throws Exception{

//這裡要注意每一行標題要留出要合併的位置,我這裡是“”
String[] tittles={"序號","整機缺貨狀態","區域","彩票機號","整機餘量","貨道一","","貨道二","","貨道三","","貨道四","","售貨機號"};
String[] tittles2={"","","","","","票種-面額","餘量","票種-面額","餘量","票種-面額","餘量","票種-面額","餘量"};
OutputStream os=null;
WritableWorkbook ww=null;
File file=new File(filePath);
if(!file.exists()){
file.mkdir();
}
os=new FileOutputStream(filePath+fileName);
ww=Workbook.createWorkbook(os);
WritableSheet sheet=ww.createSheet(fileName, 0);

//文字對齊方式
        WritableCellFormat wcf = new WritableCellFormat();  
        wcf.setAlignment(Alignment.CENTRE);//把水平對齊方式指定為居中 
        wcf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//把垂直對齊方式指定為居中 


這裡大家可以參考我上面匯出的結果看看,下面的如何合併單元格的
//合併單元格
//WritableSheet.mergeCells(int m,int n,int p,int q);
        //作用是從(m,n)到(p,q)的單元格全部合併[我的理解:m列、n行和p列、q行合併]
sheet.mergeCells(0, 0, 0, 1);//設定第一列、第一行和 第一列、第二行合併
sheet.mergeCells(1, 0, 1, 1);
sheet.mergeCells(2, 0, 2, 1);//這裡是標題“區域” 它合併的是第3列第1行和第3列第2行
sheet.mergeCells(3, 0, 3, 1);
sheet.mergeCells(4, 0, 4, 1);
sheet.mergeCells(5, 0, 6, 0);//貨道一
sheet.mergeCells(7, 0, 8, 0);//貨道二
sheet.mergeCells(9, 0, 10,0);//貨道三
sheet.mergeCells(11, 0, 12,0);//貨道四
sheet.mergeCells(13, 0, 13, 1);
try {//新增第一行標題
for (int i = 0; i < tittles.length; i++) {
sheet.addCell(new Label(i, 0, tittles[i],wcf));//i列,1行,title內容,wcf樣式

}//新增第二行標題
for (int i = 0; i < tittles2.length; i++) {
sheet.addCell(new Label(i, 1, tittles2[i],wcf));//i列,2行,title內容,wcf樣式
}
sheet.setColumnView(1, 15);//設定第2列的寬度
sheet.setColumnView(3, 15);//設定第4列的寬度
int count=2;
if(alarmLimits!=null){
for (int i = 0; i < alarmLimits.size(); i++) {
NoLotteryAlarm alarmLimit=alarmLimits.get(i);
sheet.addCell(new Label(0, count, i+1+"",wcf));

if (StringUtil.isNotEmpty(alarmLimit.getTotal_alerm_content())) {
Integer str=alarmLimit.getTotal_alerm_content();
if(str.equals(Constant.NO_LOTTERY_ALERM_JJ)){
sheet.addCell(new Label(1,count, "緊急缺貨",wcf));
}
else if(str.equals(Constant.NO_LOTTERY_ALERM_ZY)){
sheet.addCell(new Label(1,count,"重要缺貨",wcf));
}
else{
sheet.addCell(new Label(1,count,"餘量充足",wcf));
}
}else {
sheet.addCell(new Label(1,count,"",wcf));
}
if(StringUtil.isNotEmpty(alarmLimit.getArea_name())){
sheet.addCell(new Label(2, count, String.valueOf(alarmLimit.getArea_name()),wcf));
}else {
sheet.addCell(new Label(2, count, "",wcf));
}
if(StringUtil.isNotEmpty(alarmLimit.getLottery_hard_seq())){
sheet.addCell(new Label(3, count, alarmLimit.getLottery_hard_seq(),wcf));
}else {
sheet.addCell(new Label(3, count, "",wcf));
}
sheet.addCell(new Label(4, count, alarmLimit.getTotal_count()+"",wcf));
String str1="";
if(alarmLimit.getLottery_name1()!=null)str1+=alarmLimit.getLottery_name1()+"-";
if(alarmLimit.getLottery_price1()!=null)str1+=alarmLimit.getLottery_price1();
sheet.addCell(new Label(5, count, str1,wcf));
sheet.setColumnView(5, 15);//設定第6列的寬度
if(alarmLimit.getA01_count()!=null)sheet.addCell(new Label(6, count, alarmLimit.getA01_count()+"",wcf));
else sheet.addCell(new Label(6, count, "",wcf));
String str2="";
if(alarmLimit.getLottery_name2()!=null)str2+=alarmLimit.getLottery_name2()+"-";
if(alarmLimit.getLottery_price2()!=null)str2+=alarmLimit.getLottery_price2();
sheet.addCell(new Label(7, count, str2,wcf));
sheet.setColumnView(7, 15);//設定第8列的寬度
if(alarmLimit.getA02_count()!=null)sheet.addCell(new Label(8, count, alarmLimit.getA02_count()+"",wcf));
else sheet.addCell(new Label(8, count, "",wcf));
String str3="";
if(alarmLimit.getLottery_name3()!=null)str3+=alarmLimit.getLottery_name3()+"-";
if(alarmLimit.getLottery_price3()!=null)str3+=alarmLimit.getLottery_price3();
sheet.addCell(new Label(9, count,str3,wcf));
sheet.setColumnView(9, 15);//設定第10列的寬度
if(alarmLimit.getA03_count()!=null)sheet.addCell(new Label(10, count, alarmLimit.getA03_count()+"",wcf));
else sheet.addCell(new Label(10, count, "",wcf));
String str4="";
if(alarmLimit.getLottery_name4()!=null)str4+=alarmLimit.getLottery_name4()+"-";
if(alarmLimit.getLottery_price4()!=null)str4+=alarmLimit.getLottery_price4();
sheet.addCell(new Label(11, count,str4,wcf));
sheet.setColumnView(11, 15);//設定第12列的寬度
if(alarmLimit.getA04_count()!=null)sheet.addCell(new Label(12, count, alarmLimit.getA04_count()+"",wcf));
else sheet.addCell(new Label(12, count, "",wcf));
sheet.addCell(new Label(13, count, alarmLimit.getUbox_code(),wcf));
count++;
}
}
}
catch (Exception e) {
e.printStackTrace();
}
finally{
try {
ww.write();
ww.close();
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}

}
}

-----------------------------------------------------程式碼結束-----------------------------------------------------

若有不懂的,可以聯絡我喔,希望可以略盡綿力     QQ:156003025,郵箱:[email protected]

參考於:http://zhidao.baidu.com/question/127972298.html

http://blog.csdn.net/hzw2312/article/details/6691543

相關推薦

JXL匯出EXCEL合併單元文字方式

這次能做出來,主要是感謝各位在網上提供的資料,在此記錄 匯出的結果是,大家看哈,若有可取之處可繼續 程式碼比較多,大家主要看哈我用紅色標註部分即可 --------------------------------------------------------------

JXL匯出EXCEL合併單元

圖片 import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.h

設定DataGridView單元文字方式

實現效果:    知識運用:   DataGridViewCellStyle類的Alignment屬性      //獲取或設定DataGridView單元格內的單元格內容的位置   public DataGridViewContentAlignment Alignment {ge

java匯出Excel合併單元

網上java匯出excel表格併合並單元格的資料不完全,我整理了一份,並親測能用,附截圖。 ①java匯出excel用到POI所有jar包,大家可以直接到下面地址下載點選開啟連結 ②模擬資料類 package org; public class WorkSheetDet

POI匯出Excel--合併單元

package com.test.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io

POI:單元處理(方式邊框填充色合併

public static void main(String[] args) throws Exception{         Workbook wb=new HSSFWorkbook(); // 定義一個新的工作簿         Sheet sheet=wb.crea

POI匯出Excel設定單元格式2--建立與設定Excel合併單元

POI建立與設定Excel合併單元格 話不多說上栗子 //準備工作 XSSFWorkbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("sheet1"); XSSFCreationHelper creationHel

Java-poi匯入excel合併單元

要匯入的excel示例 一、Action @Action("/import-excel") public void toimport() { String root = ServletActionContext.getSer

讓我頭疼一下午的Excel合併單元

Excel匯出常見問題 excel匯出其實不算什麼難事 在網上copy下模板程式碼,填充自己的業務資料,提供一個http介面基本就可以得到你要匯出的資料了。 但是,凡事都有例外,截止今天,excel匯出我遇到的主要是兩大類問題 1、大資料量的excel資料,比如幾十萬條甚至更多的資料匯出 2、因為excel中

poi框架匯出excel單元遇到精度問題

背景: java系統,MySql資料庫,定義有些資料格式為Decimal(24,2),即最多整數22位,小數2位,或者Decimal(24,4),即最多整數20位,小數4位的數字。系統內部操作使用BigDecimal來記錄和操作這樣的資料,並無不妥,也不會丟失

Delphi 轉EXCEL 合併單元解決方案

廢話少說先上傳程式碼,自己看吧! procedure TForm1.Button10Click(Sender: TObject); var   FExcel:Variant;   FWorkbook:Variant;   FWorkSheet:Variant;   XlsF

JS合併單元JavaScript單元合併

 <html>     <head>     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">     <title>合併表格</title>     &

POI匯出Excel設定單元格式

使用Apache的POI相關API匯出Excel設定單元格格式 栗子,一下各個程式碼之間的變數是通用的,要是在某個程式碼塊中找不到某個變數,則可以向上找尋 準備工作 InputStream = template//檔案輸入流 XSSFWorkbook wb = new XSSFW

Apache POI如何獲取Excel合併單元的值

/** * 獲取合併單元格的值 * @param sheet * @param row * @param column * @return */ public String getMergedRegionValue(Sheet sheet ,in

java中匯出excel設定單元的樣式為數字格式

//新增帶有formatting的Number物件 jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); //設定數字格式 jxl.write.WritableCellFormat wcfN

excel修改單元文字上標

需要編輯帶上標的文字格式。 CSheet sheet; // 工作頁 .... CCharacters charac; CFont0 font; CRange rangeTmp; // strStCell, strEndCell為起

PHPExcel的自定義匯出合併單元

首先自定義匯出,我用的是一個下拉多選框的一個外掛,百度一下就可找到,為了樣式好看。如圖value值對應的是你資料庫中查出的欄位值,text對應的是你的表頭資訊。ok,然後我是通過GET把這倆個值傳到我們控制器的。引入匯出類,這個就不多說。然後就是查詢資料庫,把資料處理成一個二

[Swift通天遁地]二表格表單-(12)設定表單文字方式以及自適應高度的文字區域TextArea

本文將演示如何調整文字的對齊方式,以及建立一個可根據內容自動調整高度的文字區域。 在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】 現在開始編寫程式碼,建立星期選項表單和擁有浮動標籤的文字框。 1 import UIKit 2 //首先在當前類檔案中,

[Swift通天遁地]二表格表單-(12)設置表單文字方式以及自適應高度的文本區域TextArea

控制器 自適應高度 oot customize ext 浮動 修改 color resource 本文將演示如何調整文字的對齊方式,以及創建一個可根據內容自動調整高度的文本區域。 在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】 現在開

CSS——文字方式

橫向對齊 方法1:單行塊級元素水平居中只用新增text-align即可,如P標籤,垂直居中vertical-align只適用於行內元素與單元格,所以設定行高與塊高度相同即可 text-align: center; 方法2:普通的文字居中只要設定text-ali