日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用POI生成Excel文件,可以自动调整excel列宽 .

發布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用POI生成Excel文件,可以自动调整excel列宽 . 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?http://blog.csdn.net/xiaoiaozi/article/details/1791709

在開發中經常需要用到對Excel文件的操作,現在根據網上的資料整理如下:


import?java.io.FileOutputStream;

import?org.apache.poi.hssf.usermodel.HSSFCell;
import?org.apache.poi.hssf.usermodel.HSSFCellStyle;
import?org.apache.poi.hssf.usermodel.HSSFFont;
import?org.apache.poi.hssf.usermodel.HSSFRow;
import?org.apache.poi.hssf.usermodel.HSSFSheet;
import?org.apache.poi.hssf.usermodel.HSSFWorkbook;
import?org.apache.poi.hssf.usermodel.HSSFRichTextString;
import?org.apache.poi.hssf.usermodel.HSSFDataFormat;
import?org.apache.poi.hssf.usermodel.HSSFComment;
import?org.apache.poi.hssf.usermodel.HSSFPatriarch;
import?org.apache.poi.hssf.usermodel.HSSFClientAnchor;

public?class?PoiCreateExcelTest?...{
????
public?static?void?main(String[]?args)?...{
????????
/**?*//**?
?????????*?
@see?<a?href="http://poi.apache.org/hssf/quick-guide.html#NewWorkbook">For?more</a>
?????????
*/
????????
????????
//?創建新的Excel?工作簿
????????HSSFWorkbook?workbook?=?new?HSSFWorkbook();
????????
????????
//?在Excel工作簿中建一工作表,其名為缺省值,?也可以指定Sheet名稱
????????HSSFSheet?sheet?=?workbook.createSheet();
????????
//HSSFSheet?sheet?=?workbook.createSheet("SheetName");?
????????
????????
//?用于格式化單元格的數據
????????HSSFDataFormat?format?=?workbook.createDataFormat();
????????
????????
//?創建新行(row),并將單元格(cell)放入其中.?行號從0開始計算.
????????HSSFRow?row?=?sheet.createRow((short)?1);

????????
//?設置字體
????????HSSFFont?font?=?workbook.createFont();
????????font.setFontHeightInPoints((
short)?20);?//字體高度
????????font.setColor(HSSFFont.COLOR_RED);?//字體顏色
????????font.setFontName("黑體");?//字體
????????font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);?//寬度
????????font.setItalic(true);?//是否使用斜體
//????????font.setStrikeout(true);?//是否使用劃線

????????
//?設置單元格類型
????????HSSFCellStyle?cellStyle?=?workbook.createCellStyle();
????????cellStyle.setFont(font);
????????cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);?
//水平布局:居中
????????cellStyle.setWrapText(true);
????????
????????
//?添加單元格注釋
????????
//?創建HSSFPatriarch對象,HSSFPatriarch是所有注釋的容器.
????????HSSFPatriarch?patr?=?sheet.createDrawingPatriarch();
????????
//?定義注釋的大小和位置,詳見文檔
????????HSSFComment?comment?=?patr.createComment(new?HSSFClientAnchor(0,?0,?0,?0,?(short)4,?2,?(short)?6,?5));
????????
//?設置注釋內容
????????comment.setString(new?HSSFRichTextString("可以在POI中添加注釋!"));
????????
//?設置注釋作者.?當鼠標移動到單元格上是可以在狀態欄中看到該內容.
????????comment.setAuthor("Xuys.");
????????
????????
//?創建單元格
????????HSSFCell?cell?=?row.createCell((short)?1);
????????HSSFRichTextString?hssfString?
=?new?HSSFRichTextString("Hello?World!");
????????cell.setCellValue(hssfString);
//設置單元格內容
????????cell.setCellStyle(cellStyle);//設置單元格樣式
????????cell.setCellType(HSSFCell.CELL_TYPE_STRING);//指定單元格格式:數值、公式或字符串
????????cell.setCellComment(comment);//添加注釋

????????
//格式化數據
????????row?=?sheet.createRow((short)?2);
????????cell?
=?row.createCell((short)?2);
????????cell.setCellValue(
11111.25);
????????cellStyle?
=?workbook.createCellStyle();
????????cellStyle.setDataFormat(format.getFormat(
"0.0"));
????????cell.setCellStyle(cellStyle);

????????row?
=?sheet.createRow((short)?3);
????????cell?
=?row.createCell((short)?3);
????????cell.setCellValue(
9736279.073);
????????cellStyle?
=?workbook.createCellStyle();
????????cellStyle.setDataFormat(format.getFormat(
"#,##0.0000"));
????????cell.setCellStyle(cellStyle);
????????
????????
????????sheet.autoSizeColumn((
short)0);?//調整第一列寬度
????????sheet.autoSizeColumn((short)1);?//調整第二列寬度
????????sheet.autoSizeColumn((short)2);?//調整第三列寬度
????????sheet.autoSizeColumn((short)3);?//調整第四列寬度

????????
try?...{
????????????FileOutputStream?fileOut?
=?new?FileOutputStream("C:/3.xls");
????????????workbook.write(fileOut);
????????????fileOut.close();
????????}
?catch?(Exception?e)?...{
????????????System.out.println(e.toString());
????????}

????}


}



最后自動調整列寬的代碼是在找了好久以后不經意間找著的,很驚喜!
如果編譯器提示沒有autoSizeColumn這個方法,那可能是你的poi版本太低的緣故,我用的是poi3.0版本。

總結

以上是生活随笔為你收集整理的使用POI生成Excel文件,可以自动调整excel列宽 .的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。