最近自己正在練習(xí)寫一個類似通訊錄的App.所有聯(lián)系人的通訊信息存在一個Excel的文件當(dāng)中,如下圖所示
如果要在iOS中使用上面的數(shù)據(jù),就需要將Excel中的數(shù)據(jù)轉(zhuǎn)變成iOS中可以識別的文件格式,上網(wǎng)搜索大部分人都是轉(zhuǎn)變成utf-8格式的.csv文件.但是我使用的Excel版本并沒有導(dǎo)出.csv文件時的utf-8格式選項,造成導(dǎo)出的.csv文件格式錯亂,并且不能被iOS中的contentsOfFile方法訪問.
思考良久,采用了Excel中自帶的編輯器VBA寫了一段小程序?qū)?shù)據(jù)導(dǎo)出成.txt文件,然后將.txt文件另存為utf-8格式的文件.下面是我的解決步驟.
1Excel中VBA編輯器的打開方式:
還可以通過設(shè)置Excel的偏好設(shè)置將開發(fā)工具的菜單欄顯示出來:
具體選項:
最后效果:
這樣當(dāng)再次使用VBA編輯器時,就容易多了.
編輯器界面如下:
每次新建一個Excel對象,就會生成一個VBAProject對象,最上面一個是根對象,我們可以把它當(dāng)做Excel的模板來理解,將代碼放在這里,可以在其他新建對象里面重復(fù)使用自定義編碼.
下面是是VBA的代碼:
Sub 導(dǎo)出csv文件()
'
' 導(dǎo)出csv文件 宏
Dim rng, c As Range
Dim str$
Set rng = ActiveSheet.Range("b2").CurrentRegion
For Each Row In rng.Rows
For Each c In Row.Cells
If c.Column <> 1 And c.Row <> 1 Then
str = str & "&" & c.Value
End If
Next
str = str & "\n"
Next
Dim FileName
FileName = "/Users/-/Desktop/tongxunlu.txt" ' 創(chuàng)建文件路徑。
Open FileName For Output As #1 ' 打開文件。
Print #1, str ' 將字符串寫入文件悟民。
Close ' 將三個已打開的文件全部關(guān)閉。
' 鍵盤快捷方式: Option+Command+q
MsgBox "導(dǎo)出成功!"
End Sub
上述代碼中的文件路徑,以及單元格間的分隔符都可以自定義.然后在文件路徑下就能看到導(dǎo)出的文件了.但文件采用的是GBK格式的文件,需要將導(dǎo)出的.txt文件以utf-8格式保存,才能在iOS中訪問.