码迷,mamicode.com
首页 > 其他好文 > 详细

Nopi数据写入Excel

时间:2014-11-23 18:55:49      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:winform   style   blog   http   io   ar   color   os   使用   

Nopi数据写入Excel

 

前几天,在落伍者的现金任务无意中结识一个哥们,他有这样一个需求。因为是搞小软件销售的,所以,其在一个盘符中存储有大量数据(主要是文件夹),大概有12000多个,时间长了,他想整理一下,就是将文件夹的名称写入一个文件里,文本文件或是xls最好是xls,于是我50大元接了这个小活,全当是玩了,呵呵。
通过分析需求,其获取所有的文夹名称不是难点,写入xls可以通过NOP 实现。综合,通过一个Winform程序,顺利实现。
程序运行如图:

bubuko.com,布布扣
代码如下:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {//显示打开文件对话框,注意反回类型为result类型,是一个枚举类型啊。
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {//当点击OK时,则通过 Path.GetDirectoryName方法,获得当前的想要操作的目录名称。这里做得有点笨,就是必须在当前的目录里得有一个文件,否则,选不到,这个问题没能解决。
                txtFile.Text = Path.GetDirectoryName(openFileDialog1.FileName);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {//通过静态类DirectoryInfo的构造函数得当前目录的info对象
            DirectoryInfo difo = new DirectoryInfo(txtFile.Text);
            //通过difo.GetDirectories方法获取当前目录下的所有的同级目录集合(这步很重要啊)
            DirectoryInfo[] subdifs = difo.GetDirectories();
            //到此,可以通过nopi建立一个工作薄了。当然是HSSFWorkbook对象,我用的是旧版,不知道新版是什么对象,应该大概是类似的吧。
            HSSFWorkbook wk = new HSSFWorkbook();
            //通过工作薄建立工作表
            HSSFSheet sheet = wk.CreateSheet("目录表");
            //为了使用表格标准点,取数据前先建立一个标题行,呵。
            HSSFRow row0 = sheet.CreateRow(0);
            row0.CreateCell(0).SetCellValue("序号");
            row0.CreateCell(1).SetCellValue("名称");
            row0.CreateCell(2).SetCellValue("建立时间");
            //循环遍历每个目录对象,这个过程也是建立行的过程,每行写入一个目录的信息。
            for (int i = 0; i < subdifs.Length; i++)
            {//建立行,但要注意,因为有标题栏的存在,要在i的基础上加上1,否则标题栏会被覆盖的。
                HSSFRow subrow = sheet.CreateRow(i + 1);
                subrow.CreateCell(0).SetCellValue((i + 1).ToString());//写入编号
                subrow.CreateCell(1).SetCellValue(subdifs[i].Name.ToString());//写入目录名称
                subrow.CreateCell(2).SetCellValue(subdifs[i].CreationTime.ToString());//写入建立时间
            }
            //设置保存类型为.xls
            saveFileDialog1.Filter = "(*.xls)|*.xls";
            //显示保存文件对话框,注意返回类型
            DialogResult result = saveFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {//建立文件流对象,通过保存文件对话框的filename属性。
                using (FileStream fs = File.OpenWrite(saveFileDialog1.FileName))
                {//应用工作薄Write方法,最后将工作薄写入文件流,并保存于磁盘上。
                    wk.Write(fs);
                    MessageBox.Show("导出成功!");
                }
            }
        }
    }

 

Nopi数据写入Excel

标签:winform   style   blog   http   io   ar   color   os   使用   

原文地址:http://www.cnblogs.com/sysoft/p/4117159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!