因项目需要,需在unity下实现写入excel、打印功能。因之前在winform里操作过excel,故顺心应手===
说明:本次只实现了简单操作步骤,在实际项目需要中,在此基础上扩展即可。
需求:
1、将各种统计数据插入到excel表格中。文字、数字、图片、时间…………
2、打印excel表格
==我们首先来做第一步吧。
操作excel,我一直使用的是NPOI插件,自我感觉该插件非常不错,从java移植到.NET下的。抱着一颗激动的心开始流程……
1、将NPOI.DLL文件拷贝到unityAssetsPlugins下
(此处注意事项:1、unity4.3版本目前支持.NET2.0,故导入DLL文件请选择2.0版本的,否则unity无法识别
2、如果要读取excel2007表格内容,理论上还需要导入NPOI.OOXML.DLL文件,但unity无法识别该DLL,到目前也没找到解决方案)
2、ok。好戏开始了。创建excel表格
首先:导入命名空间→using NPOI.SSF.UserModel;using NPOI.SS.UserModel;using System.IO;<vs1.8中老是提示找不到NPOI命名空间,不用理会,unity中可正常执行。个人觉得是否为编译器所致,没试过mono-->
代码展示:
public void CreateExcel()
{
IWorkbook wk = new HSSFWorkbook(); //HSSF在读取excel2007时有误,一般用XSSF.但unity中貌似无法识别该DLL文件,在创建excel则不影响。
ISheet sheet = wk.CreateSheet(); //创建工作簿。有些版本excel创建时就带有3个sheet。此处你也可以装下
IRow row = sheet.CreateRow(0); //创建行,参数代表第一行,实际应用中根据参数去扩展吧
row.CreateCell(0).SetCellValue("this is first table cell "); //创建一个单元格,并设置单元格内容
using(FileStream fs = File.OpenWrite(@"d: est.xls"))
{
wk.Write(fs); //写入到磁盘文件中
}
}
3、看着是不是很简单呀?其实真的很简单。但是在实际项目中得需要你各种完善哦^_^
写一个打印方法:
public void PrintFile(string path)
{
System.Diagnostics.Process process = new System.Diagnostics.Process(); //系统进程
process.StartInfo.CreateNoWindow = true; //不显示调用程序窗口
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//
process.StartInfo.UseShellExecute = true; //采用操作系统自动识别模式
process.StartInfo.FileName=path; //要打印的文件路径
process.StartInfo.Verb="print"; //指定执行的动作,打印:print 打开:open …………
process.Start(); //开始打印
}
4、到此就结束了,是否感觉挺简单呀。 小伙伴们就偷着乐吧。
备注:大家有什么疑问欢迎提出来,多多交流。