<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    多Excel合并的一種處理辦法

    Posted on 2011-09-03 09:23 ZhouFeng 閱讀(437) 評論(0)  編輯  收藏 所屬分類: JAVA
    前幾天,接到一項任務,要對一批EXCEL數據進行處理,它們只是內容不一樣,結構都是一致的,主要是合并那所有的數據,差不多有近百個文件。以前也做過,只不過沒有這么多,之前用的辦法是借助于ACCESS來做的,把EXCEL一個個的導入到ACCESS里面,然后處理好了再導出到EXCEL,或是導出到EXCEL中再進行處理,這次文件有點多,要是一個一個的導也可以完成,只是感覺太不科學了,老在重復做一些枯燥簡單的事情,所以就想到用程序的方法交給計算機實現了,想過用EXCEL的VBA來做,可我不太熟悉,之前用JAVA做過一個程序來處理這樣的數據,可是沒有在現在計算機上,只得重新做了,于是還是考慮用JAVA來實現,下載jxl庫(http://jexcelapi.sourceforge.net/),用來處理EXCEL,剛開始從EXCEL中讀取數據沒有問題,寫EXCEL文件的時候,老是用EXCEL打不開,后來干脆換了種方法,直接寫成文本文件的格式,然后將文本文件用EXCEL打開,我想這樣來處理更簡單一些,下面是我寫的一些代碼
    public class Merge {

        
    public static void main(String[] args) {
            File outFile 
    = new File("e:\\out.txt");
            
            File workdir 
    = new File("e:\\workdatas");
            File[] files 
    = workdir.listFiles();
            
            BufferedWriter output 
    = null;

            Merge app 
    = new Merge();
            String str 
    = null;
            
            
    if (!outFile.exists()){
                
    try {
                    outFile.createNewFile();
                    output 
    = new BufferedWriter(new FileWriter(outFile));
                    
    for(File f:files){
                        System.out.println(f.getName());
                        str 
    = app.readExcel(f);
                        output.write(str);
                    }
                    output.close();
                } 
    catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        
        
    public String readExcel(File file){   
            StringBuffer sb 
    = new StringBuffer();   
               
            Workbook wb 
    = null;   
            
    try {   
                
    //構造Workbook(工作薄)對象   
                wb=Workbook.getWorkbook(file);   
            } 
    catch (BiffException e) {   
                e.printStackTrace();   
            } 
    catch (IOException e) {   
                e.printStackTrace();   
            }   
               
            
    if(wb==null)   
                
    return null;   
               
            
    //獲得了Workbook對象之后,就可以通過它得到Sheet(工作表)對象了   
            Sheet sheet = wb.getSheet(0);
            
    int rsColumns = sheet.getColumns();
            
    int rsRows = sheet.getRows();
            
            
    //rows從1開始,不包含標題行
            for(int i=1;i<rsRows;i++){
                
    for(int j=0;j<rsColumns;j++){
                    String cellString 
    = sheet.getCell(j, i).getContents();
                    sb.append(cellString).append(
    "\t");
                }
                sb.append(
    "\r\n");
            }
            wb.close();
            
    return sb.toString();   
        }
    }
    程序很小,沒怎么考慮結構,可能有些處理方式沒有設計好,不過目前只能在開發環境中運行,沒有設計成發行的版本,可以修改成命令行方式下的參數模式,或是做成一個簡單的窗口模式,因為需要結果數據時間有些緊迫,所以跑完這個代碼后,就沒有繼續修改了,如果哪天有時間,再來完善一下。也許可以再考慮一個VBA的版本
    先貼在這里,就當是給自己做個筆記吧。如果上面的內容能為他人提供一點參考,我很榮幸
    主站蜘蛛池模板: 成在人线av无码免费高潮喷水| 午夜福利不卡片在线播放免费| 亚洲资源在线观看| 麻花传媒剧在线mv免费观看| 亚洲heyzo专区无码综合| 精品亚洲综合久久中文字幕| 波多野结衣中文字幕免费视频| 有码人妻在线免费看片| 中文字幕亚洲色图| 一本色道久久88综合亚洲精品高清 | 久久久青草青青国产亚洲免观 | 日韩精品无码免费视频| 亚洲国产精品国自产拍电影| 真实乱视频国产免费观看 | 18禁止看的免费污网站| 粉色视频成年免费人15次| 亚洲人成网站在线播放影院在线| 日韩免费视频观看| 91在线老王精品免费播放| 黄色免费在线网址| 亚洲a级成人片在线观看| 国产亚洲大尺度无码无码专线| 国产精品成人免费视频网站京东 | 国产成人精品无码免费看| 国产AV日韩A∨亚洲AV电影| 亚洲人成电影福利在线播放| gogo全球高清大胆亚洲| 美女视频黄免费亚洲| 华人在线精品免费观看| 男性gay黄免费网站| 亚洲Av高清一区二区三区| 国产V亚洲V天堂无码久久久| 免费a级毛片大学生免费观看| 69成人免费视频| 久久99热精品免费观看牛牛| 一级做a免费视频观看网站| 亚洲AV综合色区无码一二三区| 亚洲成人黄色网址| 亚洲国产精品一区二区第一页| 亚洲国产精品人人做人人爽| 免费黄色网址入口|