首页 > 代码库 > Nopi数据写入Excel
Nopi数据写入Excel
Nopi数据写入Excel
前几天,在落伍者的现金任务无意中结识一个哥们,他有这样一个需求。因为是搞小软件销售的,所以,其在一个盘符中存储有大量数据(主要是文件夹),大概有12000多个,时间长了,他想整理一下,就是将文件夹的名称写入一个文件里,文本文件或是xls最好是xls,于是我50大元接了这个小活,全当是玩了,呵呵。
通过分析需求,其获取所有的文夹名称不是难点,写入xls可以通过NOP 实现。综合,通过一个Winform程序,顺利实现。
程序运行如图:
代码如下:
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。