2015-10-06 79 views
0

我是一個java的新手&我想從文本文件中讀取數字數據&我想在Excel電子表格的單獨單元格中編寫每個數字。值只填充2

輸入數據爲如下:(的abc.txt)

3008,45,14,277,10,6371,223,208,116,3036,1,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,1,0,0,0,0,0,0,0,0,0,0,0,2 2893,114,16,108,30,506,245,223,102,4340,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2

我想要在不同的單元格中的每個值。我使用Apache POI來使用Excel表格。這是我能夠編碼到現在爲止 package com.example.practise;

import java.io.*; 
import java.util.*; 
import org.apache.poi.hssf.usermodel.*; 
import org.apache.poi.ss.usermodel.Cell; 
//import org.apache.poi.ss.usermodel.Creationhelper; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Sheet; 


public class MultivariateDT { 

    public static void main(String[] args) throws IOException{ 

     BufferedReader bufferedReader = new BufferedReader(new FileReader("C:/Users/419803/Desktop/abc.txt")); 
     FileOutputStream out = new FileOutputStream("C:/Users/419803/Desktop/workbook.xls"); 
     HSSFWorkbook wb = new HSSFWorkbook(); 
     HSSFSheet sheet1 = wb.createSheet("new sheet"); 
     Row row = null; 
     Cell cell = null; 
     String line = null; 

     String delimiter = ","; 

     while ((line = bufferedReader.readLine()) != null) 
     { 
      String[] temp=null; 
      String str = " "; 
      temp = line.split(delimiter); 

      for(int i =0; i < temp.length ; i++) 
      { 
       str = temp[i] + str; 

       int rownum; 
       for (rownum =0; rownum < 100; rownum++) 
       { 
        row = sheet1.createRow(rownum); 

        for (int cellnum =0; cellnum <temp.length; cellnum ++) 
        { 
         cell = row.createCell(cellnum); 
         cell.setCellValue(temp[i]);   
        } 

       } 
      } 

      System.out.println(); 

     } 
     wb.write(out); 
     out.close(); 
    } 
} 

節數行&細胞必須創建是正確的,但在Excel文件中的數據是錯誤的。
在excel文件中只顯示2,2,2,2等。

任何人都可以幫我嗎?

回答

0

我認爲你有太多的循環迭代太多,也就是先循環遍歷行中的所有項目,因爲這些循環創建了100行,並且在每一行中迭代了行中的所有項目再次,創建行,錯誤setCellValue()你正在使用temp [i],而不是temp [cellnum],所以你第一次創建100行與temp [0],然後100行與所有temp [1],...

這取決於生成的電子表格應該是什麼樣子,但我會嘗試相應地調整for循環,例如對於每行一行,您將刪除外部for循環,對於每行100行,您將刪除單個外部for循環。

+0

你能幫我解決一些問題嗎? –

+0

對不起,但我不知道你到底在做什麼,因此很難提出更多的建議,這取決於你試圖實現的程序邏輯以及你如何使用for() - 循環。 – centic