zoukankan      html  css  js  c++  java
  • Unity C# 调用SaveFileDialog保存Excel文件

    本文原创,转载请注明出处: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文件的学习就告一段落了。

  • 相关阅读:
    react之引用echarts
    vue之生命周期
    算法之冒泡排序
    算法之快速排序
    算法题之统计字符串中出现最多的字母
    使用http-proxy-middleware 代理跨域
    div产生的滚动条返回顶部
    Django实战(18):提交订单
    Django实战(17):ajax !
    Django实战(16):Django+jquery
  • 原文地址:https://www.cnblogs.com/AdvancePikachu/p/6893934.html
Copyright © 2011-2022 走看看