mac系统中的Excel数据导出

最近自己正在练习写一个类似通讯录的App.所有联系人的通讯信息存在一个Excel的文件当中,如下图所示

Snip20160903_1.png

如果要在iOS中使用上面的数据,就需要将Excel中的数据转变成iOS中可以识别的文件格式,上网搜索大部分人都是转变成utf-8格式的.csv文件.但是我使用的Excel版本并没有导出.csv文件时的utf-8格式选项,造成导出的.csv文件格式错乱,并且不能被iOS中的contentsOfFile方法访问.
思考良久,采用了Excel中自带的编辑器VBA写了一段小程序将数据导出成.txt文件,然后将.txt文件另存为utf-8格式的文件.下面是我的解决步骤.
1Excel中VBA编辑器的打开方式:

Snip20160903_3.png

还可以通过设置Excel的偏好设置将开发工具的菜单栏显示出来:

Snip20160903_9.png

具体选项:

Snip20160903_6.png
Snip20160903_7.png

最后效果:

Snip20160903_11.png

这样当再次使用VBA编辑器时,就容易多了.
编辑器界面如下:


Snip20160903_13.png

每次新建一个Excel对象,就会生成一个VBAProject对象,最上面一个是根对象,我们可以把它当做Excel的模板来理解,将代码放在这里,可以在其他新建对象里面重复使用自定义编码.
下面是是VBA的代码:

Sub 导出csv文件()
'
' 导出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" ' 创建文件路径。
Open FileName For Output As #1 ' 打开文件。
Print #1, str ' 将字符串写入文件。
Close ' 将三个已打开的文件全部关闭。
' 键盘快捷方式: Option+Command+q
MsgBox "导出成功!"
End Sub

上述代码中的文件路径,以及单元格间的分隔符都可以自定义.然后在文件路径下就能看到导出的文件了.但文件采用的是GBK格式的文件,需要将导出的.txt文件以utf-8格式保存,才能在iOS中访问.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容