2013-08-07 61 views
-1

我的數據以一種格式存儲(向下看):[ - ]表示一個空白單元格,右邊的 可能只有10個空格後的列。事情是這樣的:HSSF。如何連接字符串中的每一列?

 [string0] [-] [string1] [string2] [string3] .. [string10] [-] 

如何改變這種代碼:

  1. 獲得完全的字符串,每一行fullString = [ - ] [字符串1] [字符串2] [STRING3] .. [string10 ] [ - ]。 StringBuilder的?或者如何?

    //Get first sheet from the workbook 
    HSSFSheet sheet = workbook.getSheetAt(0); 
    
    //Iterate through each rows from first sheet 
    Iterator<Row> rowIterator = sheet.iterator(); 
    while(rowIterator.hasNext()) { 
        Row row = rowIterator.next(); 
    
        //For each row, iterate through each columns 
        Iterator<Cell> cellIterator = row.cellIterator(); 
        while(cellIterator.hasNext()) { 
    
         Cell cell = cellIterator.next();  
         switch(cell.getCellType()) { 
          case Cell.CELL_TYPE_STRING: 
           System.out.print(cell.getStringCellValue() + "\t\t"); 
           list1.add(cell.getStringCellValue()); 
           break; 
         } 
        } 
        System.out.println(""); 
    } 
    file.close(); 
    FileOutputStream out = 
         new FileOutputStream("C:\\Users\\student3\\"+sfilename+".xls"); 
    workbook.write(out); 
    out.close(); 
    
+3

重複http://stackoverflow.com/q/18082358/624003的。 @埃爾德,如果你對答案不滿意,請提出一些意見,但不要針對同一問題提出不同的意見。 – Sankumarsingh

+1

請不要發表重複;特別是如果您被問題禁止,請勿創建新帳戶以發佈重複內容。 –

回答

0

外部鏈接Busy Developers' Guide to HSSF and XSSF Features

下面是應該工作的例子。

Maven依賴:

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.9</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>3.9</version> 
</dependency> 

代碼:

import org.apache.poi.hssf.usermodel.HSSFDataFormatter; 
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 
import org.apache.poi.ss.usermodel.*; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Iterator; 

public class StackOverflowQuestion18095443 { 

    public static void main(String[] args) { 
     if(args.length != 1) { 
      System.out.println("Please specify the file name as a parameter"); 
      System.exit(-1); 
     } 
     String sfilename = args[0]; 
     File file = new File("C:\\Users\\student3\\" + sfilename + ".xls"); 
     read(file); 
    } 

    public static void read(File file) { 
     try (InputStream in = new FileInputStream(file)) { 
      HSSFDataFormatter formatter = new HSSFDataFormatter(); 
      Workbook workbook = WorkbookFactory.create(in); 
      Sheet sheet = workbook.getSheetAt(0); 
      Iterator<Row> rowIterator = sheet.iterator(); 
      while (rowIterator.hasNext()) { 
       Row row = rowIterator.next(); 
       StringBuilder rowText = new StringBuilder(); 
       Iterator<Cell> cellIterator = row.cellIterator(); 
       while (cellIterator.hasNext()) { 
        Cell cell = cellIterator.next(); 
        String cellAsStringValue = formatter.formatCellValue(cell); 
        rowText.append(cellAsStringValue).append(" "); 
       } 
       System.out.println(rowText.toString().trim()); 
      } 
     } catch (InvalidFormatException | IOException e) { 
      e.printStackTrace(); 
     } 
    } 
}