值仅填充2

时间:2015-10-06 23:32:44

标签: java apache apache-poi

我是java&的新手我正在尝试从文本文件中读取数字数据&我想在Excel电子表格的单独单元格中编写每个数字。

输入数据如下:(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,5066,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,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();
    }
}

行数&amp;必须创建的单元格是正确的,但excel文件中的数据是错误的 在excel文件中只显示2,2,2,2等。

任何人都可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我认为你有太多for循环用于迭代太多,即首先你遍历行中的所有项目,因为你创建了100行,并且在每行中你再次迭代过去行中的所有项目,创建行,你在使用temp [i]而不是temp [cellnum]的setCellValue()中的bug,所以你首先用temp [0]创建100行,然后用所有temp [1]创建100行,... < / p>

这取决于生成的电子表格的外观,但我会尝试相应地调整for循环,例如对于每行一行,您将删除外部的for-for循环,每行100行,您将删除单个外部for循环。