今天在测试时遇到了需要将大量整理好的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 开机自启动脚本设置

    默认我们源码编译安装apache,是不能使用service这个命令来启动的,通常我们启动的命令是: [root@localhost httpd-2.2.16]# /usr/local/apache2/ ...

  2. Android快乐贪吃蛇游戏实战项目开发教程-02虚拟方向键(一)自定义控件概述

    该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.自定义控件简介 在本项目中,无论是游戏主区域还是虚拟方向键都是通过自定义控件 ...

  3. webpack入门——webpack的安装与使用

    一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...

  4. SQL Server中行列转换 Pivot UnPivot

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...

  5. Several anatomical structure pics 一些大脑解剖结构图

    Source: Wikipedia

  6. [LeetCode] Encode and Decode Strings 加码解码字符串

    Design an algorithm to encode a list of strings to a string. The encoded string is then sent over th ...

  7. [LeetCode] Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道 ...

  8. 给织梦添加英文栏目标题在chanel标签中调用

    网上很多添加英文栏目标题的方法,大家自己去百度一下就好,但是修改之后在chanel标签中是调用不了的,那么解决办法如下: 想要在channel 中使用,例如: {dede:channel type=' ...

  9. js获取当前域名、Url、相对路径和参数以及指定参数

    一.js获取当前域名有2种方法 1.方法一 var domain = document.domain; 2.方法二 var domain = window.location.host; 3.注意问题 ...

  10. 在mysql 查询语句中将时间戳格式转化为年月日格式

    SELECT  FROM_UNIXTIME('时间戳的字段名称', '%Y-%m-%d %H:%i:%s')   FROM `表名` http://www.cnblogs.com/tdalcn/arc ...