本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/6893934.html

本文学习如何把数据转存为Excel文件并调用SaveFileDialog窗口进行保存。

首先需要引用几个Plugins  :System.Windows.Forms(SaveFileDialog窗口)  NOPI(Excel文件的数据储存)

调用SaveFileDialog窗口的代码:

 1 public static void OpenDialog(Action<Stream> onSave){
 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文件的学习就告一段落了。

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!