Excel 中單元格內(nèi)容超過256并且存在特殊換行符

問題: EXCEl 導(dǎo)入成內(nèi)表時,單元格數(shù)據(jù)存在換行符#啊#情況以及長度超過256,且不能.txt文件格式上傳。??

造成的原因是用戶使用了0D0A (16進制)做為換行符,abap中是顯示'##' 在SAP中對應(yīng)的是cl_abap_char_utilities=>cr_lf . (cl_abap_char_utilities)有大量特殊字符

1. “0D”是把光標(biāo)移到同一行的頂頭——回車(CR)。

2、“0A”是把光標(biāo)移到下一行——換行(LF)。

3、16進制代碼中“0A”是換行,如果只有“0D”,那么光標(biāo)會回到這一行的開始處,只有“0A“、”0D”一起用,才能使光標(biāo)到下一行的開始處。


下面是我使用過的方案

一: ALSM_EXCEL_TO_INTERNAL_TABLE 擴展 ZALSMEX_TABLINE? 缺點: 無法識別換行,長文本換行后自動row+1 導(dǎo)致錯誤 處理方法:1. 擴展excle 表行 ALSMEX_TABLINE-value長度? ? ? ? ? ? ? ? ? ? ? 2. 和客戶溝通將文件中長文本用txt中顯示并且去掉中間空行。用戶不同意? 方案


二: TEXT_CONVERT_XLS_TO_SAP? 缺點:? 無法突破256長度限制 處理方法: 嘗試復(fù)制類下來但是package? SOFFICEINTEGRATION 中接口,實施類,以及include 的程序相互嵌套,無法底層更改256長度限制。

upload_xls_file_2_itab 也是同理。


最終解決方案是

結(jié)論:用戶接受更改模板將長文本放在最后面。

實現(xiàn)方式: 增強的? ZALSM_EXCEL_TO_INTERNAL_TABLE? 讀取? 前面正常數(shù)據(jù),OLE read cell? 讀取最后一列單元格然后拼接的方式實現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容