當我閱讀 excel 時,我可能會在我的閱讀字串中得到 unicode 塊/替換字符、換行、回車、pilcrow、tab 和空格。如何用最少的代碼行將它們全部消除并僅將純值作為最終輸出。
Dim str as string() = "53412437? "
O/p - 53412437
嘗試替換 - str.tostring().Replace(" ","").StartTrim.EndTrim。
uj5u.com熱心網友回復:
我發現定義一個函式來在從單元格讀取時清理 Excel 字串很方便。我不確定你的性格是什么,但它可能和我得到的一樣。看看這是否適合你
Dim fixRangeString = Function(s As String) s.
Replace(Environment.NewLine, "").
Replace(Chr(10), "").
Replace(Chr(13), "").
Replace(vbTab, "").Trim()
xlRange = DirectCast(xlSheet.Cells(row, col), Excel.Range)
If xlRange.Value IsNot Nothing Then
Dim rangeString = fixRangeString(xlRange.Value.ToString())
uj5u.com熱心網友回復:
如果您想擺脫任何可能妨礙以數字方式處理資料的東西,Excel 檔案中可能存在更多垃圾。因此,為了洗掉所有內容,我將呼叫以下語法,在其中回圈遍歷所使用范圍內的每個單元格值。
以下正則運算式過濾器將洗掉所有內容,但我不使用它:
'Dim dropspecchar As New Regex("[`~!@#$%^&*()_ ={}\[\]\\|:;""'<>,.?/-]") 'period removed
相反,我使用相反的方法,只保留字符和數字,因為下面的正則運算式過濾器將洗掉除字符 a,b,...z,A,B,...,Z 和數字 0,1,2,3 之外的所有內容,4,5,6,7,8,9
[假設 Excel 表格內使用的范圍有 100 (0-99) 行和 100 (0-99) 列]
Dim dropbadfilechars As New Regex("[^a-zA-Z0-9]")
Dim x(99,99) As Object
'Fill array x(,) with contents of Excel cell values
For row = 0 to 99
For col = 0 To 99
If x(row,col)= " " Then x(row,col)= Nothing
If x(row,col)= "." Then x(row,col)= Nothing
If x(row,col)= "-" Then x(row,col)= Nothing
If x(row,col)= "#VALUE" Then x(row,col)= Nothing
If x(row,col)= "#DIV/0" Then x(row,col)= Nothing
If x(row,col)= "#NAME?" Then x(row,col)= Nothing
If x(row,col)= "#N/A" Then x(row,col)= Nothing
If x(row,col)= "#REF!" Then x(row,col)= Nothing
If x(row,col)= "#NUM!" Then x(row,col)= Nothing
If x(row,col)= "#NULL!" Then x(row,col)= Nothing
If x(row,col) IsNot Nothing Then x(row,col)= dropbadfilechars.Replace(x(row,col), "")
Next
Next
最后,如果您將 Excel 保存為制表符分隔文本 (.txt) 或逗號分隔文本 (.csv),則在保存期間將消除任何數學函式,但會洗掉諸如“#Ref!”之類的垃圾。將是剩余的——所以它們仍然需要被過濾掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/362711.html
標籤:网络
下一篇:使用引數字串制作文本框的功能
