java excelはrowの中の幅を設定して適応します。


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    HSSFRow row=sheet.getRow(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);