生活随笔
收集整理的這篇文章主要介紹了
POI实现EXCEL下拉列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
生成下拉列表中出現的問題
String[] textList,
int firstRow,
int endRow,
int firstCol,
int endCol) {DVConstraint constraint = DVConstraint.createExplicitListConstraint(textList);CellRangeAddressList regions =
new CellRangeAddressList(firstRow,endRow, firstCol, endCol);HSSFDataValidation data_validation_list =
new HSSFDataValidation(regions, constraint);realSheet.addValidationData(data_validation_list);
return realSheet;}
DVConstraint constraint = DVConstraint.createExplicitListConstraint(textList);==直接加載數組textList==
當數組過大則需再創建一個sheet也存放數據,再將sheet引用到真正的realSheet中
完整示例
public static void main (String[] args) throws IOException {String[] countryName = {
"張新花" ,
"趙峰" ,
"劉丹" ,
"黃生功" ,
"李春楠" ,
"馬艷珍" ,
"張建群" ,
"趙瑞年" ,
"井含英" ,
"郭元維" ,
"王文芳" ,
"段國英" ,
"張文婷" ,
"陳鵬英" ,
"常發梅" ,
"孔繁菲" ,
"祁洪香" ,
"韓雅楠" ,
"范明奎" ,
"任順龍" ,
"丁永樂" ,
"馬德錄" ,
"吳紅英" ,
"嚴進香" ,
"史芳" ,
"林玲" ,
"王有運" ,
"樊有祥" ,
"靳智慧" ,
"馬梅" ,
"陳加賢" ,
"李萬輝" ,
"馬斌花" ,
"李梅林" ,
"李生豐" ,
"劉丹丹" ,
"楊菊清" ,
"賈錫通" ,
"山永信" ,
"陳少漁" ,
"盧君" ,
"任永慧" ,
"竇珍香" ,
"張國清" ,
"李美玲" ,
"曹艷慧" ,
"劉永秀" ,
"樊光芳" ,
"侯尚梅" ,
"羅生琳" ,
"張海芬" ,
"梁召賢" ,
"談明寶" ,
"賈統梅" ,
"王生萍" ,
"周泓宇" ,
"江秀蘭" ,
"孫小青" ,
"馬占富" ,
"吳秀萍" ,
"馬宏偉" ,
"德吉卓么" ,
"梁奎先" ,
"宋伯福" ,
"馬占剛" ,
"李國鋒" ,
"史元" ,
"馬佐輝" ,
"李貴福" ,
"喬世紅" ,
"李曉紅" ,
"荘柳紅" ,
"戴連梅" ,
"裴延紅" ,
"田海兵" ,
"黨忠霞" ,
"星玉英" ,
"張廷良" ,
"韓國寶" ,
"韓慶文" ,
"趙玉瑩" ,
"馬有蓮" ,
"郭麗萍" ,
"吳秀春" ,
"賈延章" ,
"石維丙" ,
"李成梅" ,
"喇成明" ,
"解生旺" ,
"運占花" ,
"熊成吉" ,
"賈生升" ,
"景源德" ,
"李文君" ,
"馬洪淇" ,
"李慧文" ,
"魏學剛" ,
"羅長平" ,
"胡生春" ,
"田種興" ,
"李滿存" ,
"石延花" ,
"王生蘭" ,
"趙家軍" ,
"安生年" ,
"田生花" ,
"趙雪玲" ,
"宋邦元" ,
"張紅梅" ,
"劉巖莉" ,
"鐘光霖" ,
"汪武祥" ,
"李連發" ,
"張雪蓮" ,
"逯進義" ,
"馬花" ,
"思春梅" ,
"牛永水" ,
"劉萬邦" ,
"張小蘭" ,
"魏珍" ,
"李永梅" ,
"劉躍峰" ,
"楊有德" ,
"肖正文" ,
"馬蘭" ,
"郭永清" ,
"蔡曉燕" ,
"孫占德" ,
"陳文娟" ,
"王凌云" ,
"盧世寶" ,
"王桂梅" ,
"宋邦宏" ,
"李生花" ,
"張成芳" ,
"趙明花" ,
"張劉賢" ,
"趙仲慧" };HSSFWorkbook workbook =
new HSSFWorkbook(); HSSFSheet realSheet = workbook.createSheet(
"Sheet xls" ); HSSFSheet hidden = workbook.createSheet(
"hidden" ); HSSFCell cell =
null ;
for (
int i =
0 , length= countryName.length; i < length; i++) { String name = countryName[i]; HSSFRow row = hidden.createRow(i); cell = row.createCell(
0 ); cell.setCellValue(name); } CellRangeAddressList regions =
new CellRangeAddressList(
0 ,
0 ,
0 ,
0 );System.
out .println(regions.getCellRangeAddress(
0 ).formatAsString());Name namedCell = workbook.createName(); namedCell.setNameName(
"hidden" ); namedCell.setRefersToFormula(
"hidden!A1:A" + countryName.length); DVConstraint constraint = DVConstraint.createFormulaListConstraint(
"hidden" ); CellRangeAddressList addressList =
new CellRangeAddressList(
0 ,
0 ,
0 ,
0 ); HSSFDataValidation validation =
new HSSFDataValidation(addressList, constraint);workbook.setSheetHidden(
1 ,
true ); realSheet.addValidationData(validation); FileOutputStream stream =
new FileOutputStream(
"c:\\range.xls" ); workbook.write(stream); stream.close();}
創建一個sheetHSSFSheet hidden = workbook.createSheet("hidden"); 將數組中的數據添加到改sheet中 設置隱藏workbook.setSheetHidden(1, true); 定義名稱 Name namedCell = workbook.createName(); namedCell.setNameName("hidden"); namedCell.setRefersToFormula("hidden!A1:A" + countryName.length); 加載到realsheet上
DVConstraint constraint = DVConstraint.createFormulaListConstraint(
"hidden" );
CellRangeAddressList addressList =
new CellRangeAddressList(
0 ,
0 ,
0 ,
0 );
HSSFDataValidation validation =
new HSSFDataValidation(addressList, constraint);
realSheet.addValidationData(validation);
POI操作EXCEl樣式
//設置長寬的長度
realSheet
.setDefaultColumnWidth (
15 )
realSheet
.setDefaultRowHeightInPoints (
25 )//設置背景色
HSSFCellStyle style = wb
.createCellStyle ()
style
.setFillForegroundColor (HSSFColor
.LIGHT _ORANGE
.index )
style
.setFillPattern (HSSFCellStyle
.SOLID _FOREGROUND)//設置邊框
style
.setBorderBottom (HSSFCellStyle
.BORDER _THIN)
style
.setBorderLeft (HSSFCellStyle
.BORDER _THIN)
style
.setBorderTop (HSSFCellStyle
.BORDER _THIN)
style
.setBorderRight (HSSFCellStyle
.BORDER _THIN)//設置字體
HSSFFont font = wb
.createFont ()
font
.setFontName (
"黑體" )
font
.setFontHeightInPoints ((short)
10 )
font
.setBoldweight (HSSFFont
.BOLDWEIGHT _NORMAL)
style
.setFont (font)//居中設置
style
.setAlignment (HSSFCellStyle
.ALIGN _CENTER)
style
.setVerticalAlignment (HSSFCellStyle
.VERTICAL _CENTER)
總結
以上是生活随笔 為你收集整理的POI实现EXCEL下拉列表 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。