今天在测试时遇到了需要将大量整理好的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. apache httpd服务器403 forbidden的问题

    一.问题描述 在apache2的httpd配置中,很多情况都会出现403. 刚安装好httpd服务,当然是不会有403的问题了.主要是修改了一些配置后出现,问题描述如下: 修改了DocumentRoo ...

  2. Java Generics and Collections-2.4-2.5

    2.4 The Get and Put Principle Get and Put Principle: 用于取对象的泛型集合,声明为 <? extends T> 用于存对象的泛型集合,声 ...

  3. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  4. Python任务调度模块 – APScheduler

    APScheduler是一个Python定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.并以daemon方式运行应用.目前最新版本为3.0 ...

  5. Unity3D 利用欧拉角实现实体的旋转

    本文系作者原创,转载请注明出处 刚刚入门U3D,也是很多东西搞不懂,最先接触的就是自己尝试去获取键盘上的GetPress之类的事件了吧 官方的API DOC也是帮了不少忙,到处吸收了各位博主的文章也是 ...

  6. 基于pcDuino-V2的无线视频智能小车

    这段时间抽空做了个智能视频小车.包含了pid电机控制.socket网络编程.多线程编程.epoll机制.gtk图形界面编程. 这是界面: 小车的底层是用的stm32f405系列的单片机+电机驱动做的一 ...

  7. PIC12F508/505/509/510/506/519/526/527单片机破解芯片解密方法!

    IC芯片解密PIC12F508/505/509/510/506/519/526/527单片机破解 单片机芯片解密型号: PIC12F508解密 | PIC12F505解密 | PIC12F506解密  ...

  8. [LeetCode] Distinct Subsequences 不同的子序列

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  9. Android -- 获取接口数据的三个方法

    1.   compile 'com.loopj.android:android-async-http:1.4.9': AsyncHttpClient client = new AsyncHttpCli ...

  10. 记录rewrite url我之前不知道的地方

    大部分url重写的需求是伪静态,当然有很多第三方开源组件,但是这种需求的核心方法其实就是context.rewritePath() 要是系统像ARR那样,用重写做代理和反向代理,一般的重写就不行了,c ...