日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java-POI操作excel清除单元格分行字符

發(fā)布時(shí)間:2025/4/16 java 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java-POI操作excel清除单元格分行字符 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、需求背景:

? ? ? 有時(shí)需將一份大的excel文件導(dǎo)入到hdfs文件,用POI組件來(lái)導(dǎo)入excel文件并輸出成txt文本,此時(shí)一些單元格中帶有分行字符的就給輸出帶來(lái)麻煩,一般MR是按照行來(lái)處理,所以需要將單元格內(nèi)的文本清除掉分行字符,變成一行;


2、解決思路:

? ??excel單元格輸入時(shí)的回車符,有軟回車Alt+Enter和硬回車Enter,對(duì)應(yīng)的ASCII碼如下表:



?如此,只要替換對(duì)應(yīng)字符的編碼即可。

3、參考代碼如下:

package csc.xls;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem;public class ExcelRead {//讀取excel文件public boolean xlsRead(String path) {StringBuffer strbuf=new StringBuffer();try{//獲取excel文件String file=path+"all.xls";POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(file));//得到Excel工作簿對(duì)象 HSSFWorkbook wb = new HSSFWorkbook(fs); //得到Excel工作表對(duì)象 HSSFSheet st = wb.getSheetAt(0);System.out.println(st.getLastRowNum());for(int i=1;i<=st.getLastRowNum();i++){//去掉表頭,遍歷每一行HSSFRow row = st.getRow(i); HSSFCell cellContent = row.getCell(0);//第1列,投訴內(nèi)容String content=cellContent.getStringCellValue();//content=content.replaceAll("[\\t\\n\\r]", "");//將內(nèi)容區(qū)域的回車換行去除 //刪除excel中回車符,軟回車Alt+Enter)和硬回車Enterfor(int j=10;j<14;j++){content = content.replaceAll(String.valueOf((char)j), "");}HSSFCell cellLabel = row.getCell(1);//第2列,越級(jí)標(biāo)記String label=cellLabel.getStringCellValue();if(label.equals("否"))strbuf.append("0"+"|"+content+"\r\n");else strbuf.append("1"+"|"+content+"\r\n");} wb.close(); fs.close(); }catch (Exception e) {System.out.println(e.getMessage());return false;} //寫入文件try{File file=new File(path+"traindata.txt");if(!file.exists()) file.createNewFile();FileOutputStream out=new FileOutputStream(file,true); out.write(strbuf.toString().getBytes("utf-8"));out.close();}catch (IOException e){e.printStackTrace();}return true;}public static void main(String[] args) {String path="D:"+System.getProperty("file.separator")+"tmp"+System.getProperty("file.separator");ExcelRead er=new ExcelRead();er.xlsRead(path);} }

總結(jié)

以上是生活随笔為你收集整理的Java-POI操作excel清除单元格分行字符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。