如何使用java将一个excel单元格拆分为两个单元格

时间:2016-03-17 06:39:35

标签: java excel

我有电子表格,我需要将一个单元格的内容吐出到两个单元格中。

像这样的细胞内容。 姓名19:00:00

我需要将其分为两个单元格作为Name和19:00:00

我正在使用apache poi来阅读excel文件。有没有更好的库来阅读excel文件并使用它。我需要从数据表中删除几个列。

2 个答案:

答案 0 :(得分:0)

你可以做同样的事情,

  

第1步:在您的情况下读取的值是:"名称19:00:00"一个临时字符串,

     

第2步:使用apache poi的workSheet.removeMergedRegion(索引 - 取消合并的区域)取消合并单元格。 refer this.

     

第3步:将你从第一步收到的字符串拆分为空格,这样就得到了最有可能的字符串数组,ary [0] = Name,   ary 1 = 19:00:00

     

第4步:将ary [0]写入未合并的第一个单元格,同样根据您的意愿将其写入另一个单元格。

答案 1 :(得分:0)

import java.io.File;
import java.io.FileInputStream;

import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Readsheet 
{
   static XSSFRow row;
   public static void main(String[] args) throws Exception 
   {
      FileInputStream fis = new FileInputStream(
      new File("G:\\test.xlsx"));
      XSSFWorkbook workbook = new XSSFWorkbook(fis);
      XSSFSheet spreadsheet = workbook.getSheetAt(0);
      Iterator < Row > rowIterator = spreadsheet.iterator();
      while (rowIterator.hasNext()) 
      {
         row = (XSSFRow) rowIterator.next();
         Iterator < Cell > cellIterator = row.cellIterator();
         while ( cellIterator.hasNext()) 
         {
            Cell cell = cellIterator.next();
            switch (cell.getCellType()) {
               case Cell.CELL_TYPE_NUMERIC:
               System.out.print( 
               cell.getNumericCellValue() + " ; " );
               break;
               case Cell.CELL_TYPE_STRING:
               System.out.print(
               cell.getStringCellValue() + " ; " ); 
               break;
               default:
            }
         }
         System.out.println();
      }
      fis.close();
   }
}

这是我用来读取excel文件的代码。