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程序研究院 发表
Unity3D研究院之在MAC上脚本XlsxWriter写入Excel .xlsx格式的更多相关文章
- 用 python 来操作 docx, xlsx 格式文件(一)(使用 xlsxwriter 库操作xlsx格式文件)
需要从数据库读取日志生成相应的 docx,xlsx 文件做相应的记录 所以自然要用到docx, xlsxwriter 库 但是这些库的应用场景非常广泛,任何需要对 word,excel 文件执行重复性 ...
- (转)MOMO的Unity3D研究院之深入理解Unity脚本的执行顺序(六十二)
http://www.xuanyusong.com/archives/2378 Unity是不支持多线程的,也就是说我们必须要在主线程中操作它,可是Unity可以同时创建很多脚本,并且可以分别绑定在不 ...
- 《转》Unity3D研究院编辑器之创建Lua脚本模板
Unity里能创建 c#脚本模板,但是如果我想创建Lua脚本模板怎么办呢?拓展一下编辑器吧. 设置一下Lua脚本的模板地址 : Assets/Editor/Lua/Template/lua.lua ...
- xlsxwriter写入Excel文件
#coding=utf-8 import xlsxwriter #加载包 myWorkbook = xlsxwriter.Workbook(opath+'/'+file_name+'.xlsx') # ...
- 在Mac上安装IntelliJ IDEA
这篇文章旨在介绍如何在Mac系统上安装IntelliJ IDEA,至于IntelliJ IDEA的介绍和使用方法,大家另行查阅,本篇的文章不再详细阐述. 简短解说,IntelliJ IDEA是可以用来 ...
- mac上使用crontab周期性执行python脚本
这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚 ...
- shell脚本删除N天前的目录-----附linux和mac上date命令的不同
背景: 每日构建的东西.按日期放到不同的目录里. 现在天的构建放到2015-06-01里,明天的就放到2015-06-02里,依次类推.时间久了.须要一个脚本删除N天前的目录.(本例中N=7.即删除一 ...
- mac上运行shell脚本遇到回车字符错误
今天运行一段其他人给的shell脚本,遇到如下问题,这个脚本的内容如下: dname=\((dirname "\)PWD") mkdir ${dname}"/rom_pu ...
- Mac上定时运行脚本工具--launchctl
在Mac上可以像在Linux上一样,使用crontab来定时运行脚本,但苹果并不推荐这个方法.苹果推荐使用Launchctl来完成定时任务. 首先,我们先写一个可执行的脚本,列子为php脚本,名字为t ...
随机推荐
- saltstack实战2--远程执行之返回(returner)
saltstack有3大功能:远程执行,配置管理,云管理 其中远程执行又可分解为:目标,模块,返回 这3个部分. 比如下面语句 [root@master ~]# salt '*' test.ping ...
- APK downloader
APK Downloader Android apk (2016-08-25发现) Apk pure 好像提供免费的FQ工具哟 发现一个Android richtext RichEditor for ...
- Android 6.0doze和standby 的一点理解
之前写的压力测试程序,在开发版和5.0上面测试好好的,即使熄灭屏幕也会跑.我的程序主要是在Activity里面开启了一个thread,其中不断在界面上显示任务信息.换到6.0的 机器上面,发现一个现象 ...
- 让aspx页面也可以通过url路由进行访问
参考文章:http://blog.csdn.net/zhanglong_longlong/article/details/8841030 这两天,在工作中需要将aspx的页面虚拟成url路径访问.比如 ...
- 【转】ODBC和OLEDB的连接字符串
ODBC连接 适合数据库类型 连接方式access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pas ...
- SQL Server(高级) 关键字的使用 二
二, 高级 关键字 -- 使用介绍 8,Top 的使用(Top子句返回记录的数目) select top number|percent column_name(s) from table_name 或 ...
- 往xml中更新节点
/* System.out.println("2323"); DocumentBuilderFactory factory = DocumentBuilderFactory.new ...
- Build Error 6041: Internal build error
Note: Following content is reprinted from the Original article Flexera : Build Error 6041. Only for ...
- Mustache
简要介绍 玩过node的人应该都知道ejs,jade. mustache和他们一样都是模板渲染引擎,我个人喜欢mustache,因为他非常简洁,代码量才600多行. mustache既可以在前端使用, ...
- JS 版的pnp in_array($str,$arr)
var a = Array(1,2,3,4,5); function in_array(search,array){ for(var i in array){ if(array[i]==search) ...