本文原创,转载请注明出处:
本文学习如何把数据转存为Excel文件并调用SaveFileDialog窗口进行保存。
首先需要引用几个Plugins : 。
调用SaveFileDialog窗口的代码:
1 public static void OpenDialog(ActiononSave){ 2 using (SaveFileDialog saveFile = new SaveFileDialog()){ 3 saveFile.Title = "保存文件"; 4 saveFile.Filter = "Excel files(*.xls)|*.xls|All files(*.*)|*.*"; 5 saveFile.InitialDirectory = UnityEngine.Application.dataPath; 6 if(saveFile.ShowDialog()==DialogResult.OK){ 7 using(Stream s=saveFile.OpenFile()){ 8 if (onSave != null) 9 onSave (s);10 }11 12 string Savepath = Path.GetDirectoryName (saveFile.FileName);13 14 Process.Start (Savepath);15 }16 }17 }
需要保存其他类型的文件可以把上述代码修改为自己想要的即可。
效果图如下:
可惜窗口是英文的,查阅了很多资料,发现汉化会有问题,故如果有小伙伴知道如何汉化,一定要记得联系——AdvancePikachu。
接下来是Excel文件的数据储存,代码如下:
1 public void WriteToStream(Stream s) 2 { 3 IWorkbook workbook = new HSSFWorkbook (); 4 ISheet sheet = workbook.CreateSheet (); 5 6 IRow row = sheet.CreateRow (0);//参数0表示第0行 7 8 string[] firstRow = new string[] 9 {10 "ID",11 "性别",12 "博客"13 };14 15 for (int i = 0; i < firstRow.Length; i++) 16 {17 ICell cell = row.CreateCell (i);18 cell.SetCellValue (firstRow [i]);19 }20 21 IRow row2 = sheet.CreateRow (1);22 23 string[] secondRow = new string[] 24 { 25 "AdvancePikachu",26 "男",27 "http://www.cnblogs.com/AdvancePikachu/"28 };29 30 for (int i = 0; i < secondRow.Length; i++)31 {32 ICell cell = row2.CreateCell (i);33 cell.SetCellValue (secondRow [i]);34 }35 36 workbook.Write (s);37 }
保存的数据和行列可以自行设置,效果图如下:
当然,最后把调用第一个脚本的方法也分享下,
代码如下:
1 void save() 2 { 3 SaveDialog.OpenDialog (saveExcel); 4 } 5 6 void saveExcel(Stream s) 7 { 8 ExcelWrite ew = new ExcelWrite (); 9 ew.WriteToStream (s);10 }
好了,调用SaveFileDialog保存Excel文件的学习就告一段落了。