最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java使用jxl包寫Excel文件適合列寬實現(xiàn)

 更新時間:2013年11月20日 16:54:03   作者:  
用jxl.jar包,讀寫過Excel文件。也沒有注意最適合列寬的問題,但是jxl.jar沒有提供最適合列寬的功能,上次用到寫了一下,可以基本實現(xiàn)最適合列寬。

注意,這個只是基本可以實現(xiàn),基本針對中文電子報表。

1.實現(xiàn)思路
(1)一般的中文漢字占位長度是英文字母的2倍,“方塊字”很統(tǒng)一。
(2)對于要寫入Excel中的數(shù)據(jù)統(tǒng)計每一列的最大列寬,最后直接將這一列的列寬設置為這個列的最大值即可。

2.實現(xiàn)代碼

復制代碼 代碼如下:

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

//中文名
public class ExcelBestColumn
{
    public static void main(String argus[]) throws Exception{
        //構造數(shù)據(jù),有兩行
         List<String> row1=new ArrayList<String>();    row1.add("最合適列寬");    row1.add("這個基本可以實現(xiàn)");
        List<String> row2=new ArrayList<String>();    row2.add("Best Column Width");    row2.add("Haha");
        List list=new ArrayList();    list.add(row1);    list.add(row2);

        //寫數(shù)據(jù)到Excel中
        WritableWorkbook book= Workbook.createWorkbook(new File("t.xls"));
        WritableSheet sheet=book.createSheet("測試",0);
        writeDataToSheet(sheet,list);
        book.write();
        book.close();
    }

    public static void writeDataToSheet(WritableSheet sheet,List<List<String>> list) throws Exception{
        int columnBestWidth[]=new  int[list.get(0).size()];    //保存最佳列寬數(shù)據(jù)的數(shù)組

        for(int i=0;i<list.size();i++){
            List<String> row=list.get(i);
            for(int j=0;j<row.size();j++){
                 sheet.addCell(new Label(j,i,row.get(j)));

                 int width=row.get(j).length()+getChineseNum(row.get(j));    ///漢字占2個單位長度
                 if(columnBestWidth[j]<width)    ///求取到目前為止的最佳列寬
                     columnBestWidth[j]=width;
            }
        }

        for(int i=0;i<columnBestWidth.length;i++){    ///設置每列寬
            sheet.setColumnView(i, columnBestWidth[i]);
        }
    }

    public static int getChineseNum(String context){    ///統(tǒng)計context中是漢字的個數(shù)
        int lenOfChinese=0;
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");    //漢字的Unicode編碼范圍
        Matcher m = p.matcher(context);
        while(m.find()){
            lenOfChinese++;
        }
        return lenOfChinese;
    }
}

3.只是實現(xiàn)而已
(1)這個是一次項目中寫的,自動導數(shù)Excel電子報表,可以很好實現(xiàn)。主要是:漢字,阿拉伯數(shù)字。
(2)漢字是方塊字,每個字的大小很統(tǒng)一,可以很驚奇的統(tǒng)計列寬。
(3)英文小寫字母共26個,每個字母的大小差異很小,也可以實現(xiàn)最佳列寬。
(4)其他字符,每個字符的占位大小差異不定,比如大小字母序列“IIIIIII”和字母“DDDDDDD”。

總之,jxl.jar沒有自動實現(xiàn)最適合列寬的方法;如果要導出的電子報表中漢字占絕大多數(shù),就能很好的用這個程序實現(xiàn)最適合列寬。

相關文章

  • SpringCloud Eureka服務發(fā)現(xiàn)實現(xiàn)過程

    SpringCloud Eureka服務發(fā)現(xiàn)實現(xiàn)過程

    這篇文章主要介紹了SpringCloud Eureka服務發(fā)現(xiàn)實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Spring boot 連接多數(shù)據(jù)源過程詳解

    Spring boot 連接多數(shù)據(jù)源過程詳解

    這篇文章主要介紹了Spring boot 連接多數(shù)據(jù)源過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 詳解使用Spring AOP和自定義注解進行參數(shù)檢查

    詳解使用Spring AOP和自定義注解進行參數(shù)檢查

    本篇文章主要介紹了詳解使用Spring AOP和自定義注解進行參數(shù)檢查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • JavaCV簡介與環(huán)境搭建詳細步驟

    JavaCV簡介與環(huán)境搭建詳細步驟

    JavaCV是一個開源的Java接口,它為幾個著名的計算機視覺庫(如OpenCV、FFmpeg)提供了Java封裝,這篇文章主要給大家介紹了關于JavaCV簡介與環(huán)境搭建的相關資料,需要的朋友可以參考下
    2024-04-04
  • java 中volatile和lock原理分析

    java 中volatile和lock原理分析

    這篇文章主要介紹了java 中volatile和lock原理分析的相關資料,需要的朋友可以參考下
    2017-03-03
  • 深入淺析jcmd:JDK14中的調試神器

    深入淺析jcmd:JDK14中的調試神器

    這篇文章主要介紹了jcmd:JDK14中的調試神器,本文給大家提到了jcmd的語法,通過實例列舉的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Java的異常處理體系詳解

    Java的異常處理體系詳解

    這篇文章主要介紹了Java的異常處理體系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spring?Boot自定義Starter組件開發(fā)實現(xiàn)配置過程

    Spring?Boot自定義Starter組件開發(fā)實現(xiàn)配置過程

    SpringBoot中的starter是一種非常重要的機制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進?starter,應用者只需要在maven中引入starter依賴,這篇文章主要介紹了Spring?Boot自定義Starter組件開發(fā)實現(xiàn),需要的朋友可以參考下
    2022-06-06
  • Spring Kafka中@KafkaListener注解的參數(shù)與使用小結

    Spring Kafka中@KafkaListener注解的參數(shù)與使用小結

    @KafkaListener注解為開發(fā)者提供了一種聲明式的方式來定義消息監(jiān)聽器,本文主要介紹了Spring Kafka中@KafkaListener注解的參數(shù)與使用小結,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Java連接超時的幾種情況以及讀取代碼

    Java連接超時的幾種情況以及讀取代碼

    在Java編程中連接超時異常是指在建立網絡連接時,無法在給定的時間內成功建立連接的異常,這篇文章主要給大家介紹了關于Java連接超時的幾種情況以及讀取的相關資料,需要的朋友可以參考下
    2024-02-02

最新評論

台东县| 大荔县| 平阴县| 云林县| 德钦县| 开远市| 镇坪县| 宝应县| 固始县| 郓城县| 大姚县| 炎陵县| 葵青区| 敦煌市| 渭源县| 稻城县| 彭水| 夹江县| 广汉市| 周宁县| 郎溪县| 徐水县| 阿荣旗| 民勤县| 香格里拉县| 永登县| 郑州市| 宁蒗| 宁阳县| 陈巴尔虎旗| 临安市| 鹰潭市| 崇文区| 重庆市| 盘锦市| 太白县| 京山县| 南安市| 马龙县| 凉城县| 巩义市|