Unity3D研究院之在MAC上脚本XlsxWriter写入Excel .xlsx格式
原地址:http://www.xuanyusong.com/archives/3011
以前找了很久可以跨平台支持读写Excel的工具,我也试了很多种DLL。可在Windows上各个完美支持,可是在MAC上就各种恶心。为什么一开始我想找DLL呢?因为DLL很方便,因为它可以直接在Unity里面跨平台,现在开发小组里面都有人用MAC有人用Windows。感谢昨天微博好友给我说的一个办法,以前我一直围绕着DLL在研究,却忽略了别的方法,废话不多说,开始正文。
为什么要生成.XLSX呢?我的初衷是想把代码里面还有Prefab里面的中文提取出来用来做多语言,如果你有兴趣可以看看我的上一篇文章。http://www.xuanyusong.com/archives/2987
如下图所示,我先在C#代码里面把我需要写入Excel的内容生成出来,其实代码部分因为都是文件级的提取在python里面都可以提取,只是Prefab部分我就不知道怎么在python里搞了。加上我对python也不太懂,目前还在学习python中。考虑到策划可能已经翻译过了一些文字,所以在生成的时候尽量把新产生的中文KEY放在最后,或者生成的时候给它加个颜色来标识一下,而已经翻译过的就不要在生成成新的了。
好了不说废话了, 我们用的工具是XLsxWriter https://pypi.python.org/pypi/XlsxWriter 或者在文章的最后你去下载我的工程。我把XlsxWriter放在我的Unity工程里面,如下图所示,examples下面就是它的例子。
因为mac自带python所以也不用单独去安装,执行例子就是打开终端。
python xxxx/examples/demo.py
当我在直接执行python的时候发现了一个错误。
File “/Users/MOMO/New Unity Project 15/Assets/Scripts/Editor/XlsxWriter-0.5.6/examples/demo.py”, line 7, in <module>
import xlsxwriter
我的解决办法就是把需要执行的python脚本放在与xlsxwriter文件夹同级的目录下,也就是上图中demo的位置。
然后看看我写的python脚本,因为我以前没用过python所以也不太懂,也就是今天才开始学,目前感觉脚本语言写起来舒服很多了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# -*- coding: utf-8-*-
import xlsxwriter
import sys
import os
#带生成excel的文本参数传递进来,这里取到它的目录
folder,path=os.path.split(sys.argv[1])
#在他的同级目录下生成.xlsx
xlsxPath = folder + '/demo.xlsx'
#准备开始生成excel
workbook = xlsxwriter.Workbook(xlsxPath)
worksheet = workbook.add_worksheet()
row = 0
#读取文本,按照♀符号隔开的顺序
file = open(sys.argv[1], 'r')
lines = [ x.strip().split('♀') for x in file.readlines() ]
#循环遍历,把内容写进excel中
for line in lines[1:]:
#这里要注意,因为设置文本的格式是UTF-8不然会报错喔
worksheet.write(row, 0, unicode(line[0] , 'utf-8'))
worksheet.write(row, 1, unicode(line[1] , 'utf-8'))
row += 1
workbook.close()
|
在终端里面执行,参数1就是我用c#生成好的中文文本目录,这样在python里面去提取,最终将excel生成在和他同级目录下。
1
|
python /Users/MOMO/New\ Unity\ Project\ 15/Assets/Scripts/Editor/XlsxWriter-0.5.6/demo.py /Users/MOMO/New\ Unity\ Project\ 15/Assets/out.txt
|
如下图所示,最终我的中文已经完完整整的写入excel了。
最后是完整的下载地址:http://pan.baidu.com/s/1dD1n7Vj
另外虽然xlsxwriter也支持读取excel的功能,但是我觉得如果仅仅是读取你最好看我之前文章介绍的这种方法
http://www.xuanyusong.com/archives/2429 它是完全基于mono的可以直接跨平台,它唯一的缺陷就是不支持写入excel。
- 本文固定链接: http://www.xuanyusong.com/archives/3011
- 转载请注明: 雨松MOMO 2014年07月25日 于 雨松MOMO程序研究院 发表
相关文章
- [MAC] mac系统如何截图
- [MAC] Mac下的SVN命令行
- [MAC] mac系统如何显示和隐藏文件
- Mac Pro 安装 Adobe Photoshop CC for mac V2014 破解版
- 解决 Mac Pro 用 Excel 打开 CSV 文件不能正常显示的问题
- Office EXCEL 复制粘贴 变成 #value,#REF!,#DIV怎么办
- Office EXCEL 不用VB,你也可以制作自己的Excel菜单!
- importExcel运用注解实现EXCEL导入poi类
- 把数据库中的数据制作成Excel数据
- 使用Excel管理命令输出
- 使用Excel绘制F分布概率密度函数图表
- C# 操作Excel之旁门左道 [ C# | Excel ]
- 使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
- Atitit.导出excel报表的设计与实现java .net php 总结
- .NET:GrapeCity Documents for Excel (GcExcel)
- Excel:python结合Excel使用技巧经验总结之(将python输出的等间隔列数据直接粘贴复制存到物理表格内等)图文教程之详细攻略
- Python + Excel——飞速处理数据分析与处理
- 这可能是全网最完整的 Python 操作 Excel 库总结
- Excel 保存文件出现 您试图打开的文件类型(Excel 2007和更高版本的启用宏的工作簿和模板)被信任中心的文件阻止设置阻止
- 前端必备技能知识:JS导出Blob流文件为Excel表格、Vue.js使用Blob的方式实现excel表格的下载(流文件下载)
- JAVA操作Excel表格:方法二:POI的使用:Excel实战之POI创建excel文件(高版本.xlsx)
- 〖Python自动化办公篇⑫〗- Excel 文件自动化 - 读取 excel 数据
- 基于流的EXCEL文件导出,SXSSFWorkbook源码解析