java excelはrowの中の幅を設定して適応します。
6738 ワード
row = sheet.createRow(i+1);
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setWrapText(true);
row.setRowStyle(cellStyle);
ある列の幅を指定します。必要なのは256の倍数です。デフォルトの幅はいらないです。おかしいです。
// , webbook, Excel
if(wb == null){
wb = new HSSFWorkbook();
}
// , webbook sheet, Excel sheet
HSSFSheet sheet = wb.createSheet(sheetName);
sheet.setDefaultColumnWidth(20);
sheet.setColumnWidth(0,5120);
sheet.setColumnWidth(1,5120);
sheet.setColumnWidth(2,25600);
sheet.setColumnWidth(3,10240);
sheet.setColumnWidth(4,2560);
sheet.setColumnWidth(5,2560);
sheet.setColumnWidth(6,2560);
sheet.setColumnWidth(7,2560);
// , sheet 0 , poi Excel short
HSSFRow row = sheet.createRow(0);
// , ,
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //
//
hlink_style = wb.createCellStyle();
HSSFFont hlink_font = wb.createFont();
hlink_font.setUnderline(HSSFFont.U_SINGLE);
hlink_font.setColor(HSSFColor.BLUE.index);
hlink_style.setFont(hlink_font);
//
bigFontstyle = wb.createCellStyle();
HSSFFont big_font = wb.createFont();
big_font.setFontHeight((short)256);
bigFontstyle.setFont(big_font);
//
bigRedFontStyle = wb.createCellStyle();
HSSFFont big_red_font = wb.createFont();
big_red_font.setFontHeight((short)256);
big_red_font.setColor(HSSFColor.RED.index);
bigRedFontStyle.setFont(big_red_font);
// working
greenFontStyle = wb.createCellStyle();
HSSFFont green_font = wb.createFont();
green_font.setColor(HSSFColor.GREEN.index);
greenFontStyle.setFont(green_font);
// working
redFontStyle = wb.createCellStyle();
HSSFFont red_font = wb.createFont();
red_font.setColor(HSSFColor.RED.index);
redFontStyle.setFont(red_font);
HSSFCell cell = null;
//
for(int i=0;i
参考:http://www.educity.cn/wenda/371805.html
HSSFCell設定スタイル
質問者:xuxinliang
リリース時間:2014-05-10
ブラウズ:293
返信:0
懸賞金:0.0シーザーコイン
HSSFCell設定スタイル
1、workbookを遍歴する
//ロードソースファイル
POIFFSFile System fs=new POIF SFileSystem(new FileInputStream(filePath)
HSSFWorkbook wb=new HSSFWorkbook(fs);
for(int i=0;i<wb.getNumber Of Sheets();i+){
HSSFeet sheet=wb.get SheetAt(i)
for(int j=sheet.get First RowNum()j
if(row!=null){
// 。。。操作)
}
}
)
//ターゲットファイル
FileOutputStream fos=new FileOutputStream(object Path)
//ファイルを書く
wb.write(fos)
fos.close()
2、列とセルを得る
HSSFRow row=sheet.getRow(i)
HSSFCell=row.get Cell(shart)j)
3、sheetの名前とセルの内容を設定するのは中国語です。
wb.set Sheet Name(n,「中国語」,HSSFCell.ENCODING_UTF_16)
cell.set Encocding(shart)1)
cell.set CelValue(「中国語」)
4、セルの内容は数式または数値ではなく、このように読み書きできます。
cell.set CelType(HSSFCell.Cell.Cell_TYPE_NUMERIC)
セル.getNumericCelValue()
5、列の幅、行の高さを設定します。
sheet.set Column Width;
row.set Height;
6、範囲を追加して、セルを結合する
Region region=new Region(shot)rowFrom、column From、rowTo、columnTo;
sheet.addMergdRegion;
//すべての領域を得る
sheet.getNumMergdRegions()
7、一般的な方法
セルの属性に応じて文字列の値を返します。
public String get CelStrigValue(HSSFCell cell){
String cell Value="
switch(cell.getCelType){
case HSSFCell.Cell.ELL_TYPE_STRING:
セルValue=cell.get String CelValue()
if(cell Value.trim().equals(")エクセルValue.trim().length(==0)
セルValue=";
break;
case HSSFCell.Cell.ELL_TYPE_NUMERIC:
セルValue=String.valueOf(cell.getNumeric CelValue);
break;
case HSSFCell.Cell.ELL_TYPE_FOREMURA:
cell.set CelType(HSSFCell.Cell.Cell_TYPE_NUMERIC)
セルValue=String.valueOf(cell.getNumeric CelValue);
break;
case HSSFCell.Cell.ELL_TYPE_BLANK:
セルValue=";
break;
case HSSFCell.Cell.ELL_TYPE_BOOLEAN:
break;
case HSSFCell.Cell.ELL_TYPE_ERROR:
break;
default:
break;
}
return cell Value
)
8、一般的なセルの外枠書式
破線HSSFCelSteyle.BORDER_DOTTED
実線HSSFCelStyle.BORDER_THIN
public static HSSFCelStyle get CelSteyle(shart type)
HSSFWorkbook wb=new HSSFWorkbook()
HSSFCelSteyle style=wb.create CelSteyle()
style.set Border Bottom(type)//下の境界線
style.set Border Left(type)//左の境界線
style.set BorderRight(type)//右の境界線
style.set Border Top(type)//上の境界線
return style;
)
9、フォントとコンテンツの位置を設定する
HSSFFont f = wb.creat Font()
f.set FontHeight InPoint((shart)11)//サイズ
f.set Boldweight(HSSFFont.BOLD WEIGHT_NORMAL)//太さを加える
style.set Font(f)
style.set Alignment(HSSFCelSteyle.ALIGN_CENTER)///左右中央に
style.set Verstical Align ment(HSSFCelSteyle.VERICAL_CENTER)///上と下を中央に置く
style.set Rotation;/セルの内容の回転角度
HSSFData Format df=wb.creat Data Format()
style 1.set Data Format(df.get Format(“0.00%”);セルのデータ書式を設定
cell.set CelFormula(string)//セルに数式を設定する
style.set Rotation;/セルの内容の回転角度
cell.set CelStele(style);
10、図を挿入する
//先に読んだ写真をByteArayOutputStreamに入れてByteArayを生成します。
ByteArayOutputStream byteArayOut=new ByteArayOutputStream();
BufferedImage bufferImg=ImageIO.read(new File);
ImageIO.write(bufferImg,「jpg」,byteArayOut)
//excelのテンプレートを読み込む
FileInputStream fos=new FileInputStream(filePathName+"/stencil.xlt);
fs=new POIF SFile System(fos)
//シートの作成
HSSFWorkbook wb=new HSSFWorkbook(fs);
HSSFeet sheet=wb.get SheetAt(0)
HSSFPatriarch patriarch=sheet.creaDrawingPatriarch()
HSSFClient Anchorr=new HSSFClientAncher(0,0,1023,255,0,0,0,(shart)10,10)
patriarch.create Picture(ancher,wb.addPicture(bytearrayOut.toBytearray),HSSFWorkbook.PICTURE_TYPE_JPEG);