今天在测试时遇到了需要将大量整理好的Excel数据转换为plist文件的情况.百度了一下教程,发现虽然别人也遇到过类似的情况,但是有些讲的还是不够细致.所以做如下整理.
 
百度到的内容中有使用MesaSQLite的情况,由于没有走通,在这里暂时不提.
 
实际处理过程如下:
 
1.转化excel文件到记事本文件.复制粘贴出来即可,这部分的操作我是在windows下进行的,使用的是excel跟notepad++.使用默认操作也导致后面遇到了一些问题.
 
2.直接将转化后的记事本文件拖入Xcode资源文件夹,点击预览到得情况如下,出现乱码:
 
 
强行运行程序转换,程序没有报错,但是得到的plist文件只有文件头,实际有效数据为空.
代码如下:
    NSString *alarmPath = [[NSBundle mainBundle] pathForResource:@"GSK980M" ofType:@"txt"];
// NSLog(@"%@",alarmPath);
// 尝试更换文件编码,失败
// NSStringEncoding gbk = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *alarmContent = [[NSString alloc] initWithContentsOfFile:alarmPath encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"%@",alarmContent); NSArray *alarmArray = [alarmContent componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
// NSLog(@"%@",alarmArray);
NSString *docuPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *plistPath = [docuPath stringByAppendingPathComponent:@"GSK980M.plist"];
NSLog(@"%@",plistPath);
NSMutableArray *resultsArr = [NSMutableArray array];
for (NSInteger j = 0; j < alarmArray.count; j++){
NSString *alarmStr = [alarmArray objectAtIndex:j];
// NSLog(@"%@",alarmStr);
NSArray *alarmArr = [alarmStr componentsSeparatedByString:@";"];
[resultsArr addObject:@{@"alarmID":[alarmArr objectAtIndex:0],@"alarmType":[alarmArr objectAtIndex:1],@"alarm":[alarmArr objectAtIndex:2],@"clearType":[alarmArr objectAtIndex:3],@"alarmContent":[alarmArr objectAtIndex:4]}];
}
[resultsArr writeToFile:plistPath atomically:YES];

  

 
3.搜索,确认为文件编码的问题.开始考虑转换记事本文件的编码,使用MAC自带的文本编辑.app没能发现保存为UTF-8的选项.继续百度,得到关键的信息.
在文本编辑器中按下快捷键:shift⇧+command⌘+T.
再保存的时候就会出现:
然后保存即可.
 
4.此时,重新将文件拖入资源目录,预览中已经显示正常:
重新运行程序,得到需要的plist文件. 

Excel文件转plist文件出现的文件编码问题的更多相关文章

  1. dataview将excel表格的数据导出成txt文件

    有时候需要处理大量的数据,且这些数据又存在于excel表格内,在平时的时候,我是非常喜欢这样的数据的,因为只要是excel表格内的数据,处理起来的方法就很方便.也可能我平时遇见的数据总是以一种杂乱无章 ...

  2. piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql

    piap.excel 微软 时间戳转换mssql sql server文件时间戳转换unix 导入mysql 需要不个mssql的sql文件导入mysql.他们的时间戳格式不同..ms用的是自定义的时 ...

  3. python输出excel能够识别的utf-8格式csv文件

    http://blog.csdn.net/azhao_dn/article/details/16989777 可能大家都遇到过,python在输出的csv文件中如果有utf-8格式的中文,那么在使用e ...

  4. poi excel文件上传并解析xls文件

    1.jsp页面 <form action="hw/pe_xls_upload" method="post" enctype="multipart ...

  5. 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中

    把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...

  6. Xcode 6.4项目中的常见文件(info.plist)

    Xcode 6.4项目中的常见文件(info.plist) 代码中获取 info.plist[NSBundle mainBundle] infoDictionary]; Bundle display ...

  7. 随性练习:excel中文字和链接存到html文件

    这是一个简单的练习,主要是将excel中文字和链接存到html文件中,并且可通过点击文字直通链接 excel格式如下图示,我这里得excel是07版的,所以用到xlrd模块 代码: import xl ...

  8. 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息

    在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能. 使用场景 在文件管 ...

  9. 个人永久性免费-Excel催化剂功能第17波-批量文件改名、下载、文件夹创建等

    前几天某个网友向我提出催化剂的图片功能是否可以增加导出图片功能,这个功能我一直想不明白为何有必要,图片直接在电脑里设个文件夹维护着不就可以了么?何苦还要把Excel上的图片又重新导出到文件夹中?这个让 ...

随机推荐

  1. 使用批处理文件在FTP服务器 上传下载文件

    1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt   192.168.1.1 建立一个 ...

  2. linux命令-文件命令

    1.解压.tar文件 tar -vxf *.tar 2.把一个文件夹下的内容复制到另一个文件夹 将aaa内所有内容复制到bbb cp -a aaa/* /bbb/  * 3.复制文件时不改变文件的时间 ...

  3. background-attachment属性进阶

    前提是定义了background-image属性,然后用background-attachment来指明背景图的位置是固定于视口的,还是随着包含块移动的.可简单理解为定义背景图片随滚动轴的移动方式. ...

  4. asp.net缓存

    copy:http://www.cnblogs.com/knowledgesea/archive/2012/06/20/2536603.html 一.缓存概念,缓存的好处.类型.            ...

  5. canvas贝塞尔曲线 - 1

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvEAAAIcCAIAAADwgGbqAAAgAElEQVR4nOy9a4wb55nn20kOZhq7o8

  6. webstorm对WebGL自动提示

    默认竟然没有勾选上,怪不得提示的时候,有很多webgl接口找不到方法(虽然可以运行).

  7. [LeetCode] Perfect Rectangle 完美矩形

    Given N axis-aligned rectangles where N > 0, determine if they all together form an exact cover o ...

  8. [LeetCode] Find the Duplicate Number 寻找重复数

    Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), pro ...

  9. ubuntu中phpmyadmin密码忘记

    在安装mysql时,默认只让你设置了root的密码,如果root的密码忘记,处理办法如下 第一步: 这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的 ...

  10. Linux工具入门:make工具与Makefile文件

    1. make工具 利用make工具可以自动完成编译工作,这些工作包括: 如果修改了某几个源文件,则只重新编译这几个源文件 如果某个头文件被修改了,则重新编译所有包含该头文件的源文件 利用这种自动编译 ...