• excel导出功能原型


    本篇博客是记录自己实现的excel导出功能原型,下面我将简单介绍本原型:

    这是我自制的窗体,有一个ListView和一个Button(导出)控件。

    这是我在网上找到了使用exel需要引用的库。

    using Microsoft.Office.Core;
    using Microsoft.Office.Interop.Excel;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    

    然后我便开始了对这个原型的假设与测试,我首先把ListView中的列标题,和一行666的假数据写到ListView里面。

           public void CreateHeadersAndFillListView()
            {
                //建立PSP表格的每个列标题
                ColumnHeader date = new ColumnHeader();
                date.Text = "日期";
                date.Width = 100;
                listView1.Columns.Add(date);
                ColumnHeader categories = new ColumnHeader();
                categories.Text = "类别";
                categories.Width = 60;
                listView1.Columns.Add(categories);
                ColumnHeader tasks = new ColumnHeader();
                tasks.Text = "任务";
                tasks.Width = 180;
                listView1.Columns.Add(tasks);
                ColumnHeader startTime = new ColumnHeader();
                startTime.Text = "开始时间";
                startTime.Width = 60;
                listView1.Columns.Add(startTime);
                ColumnHeader endTime = new ColumnHeader();
                endTime.Text = "结束时间";
                endTime.Width = 60;
                listView1.Columns.Add(endTime);
                ColumnHeader intTime = new ColumnHeader();
                intTime.Text = "中断时间";
                intTime.Width = 60;
                listView1.Columns.Add(intTime);
                ColumnHeader deltaTime = new ColumnHeader();
                deltaTime.Text = "净时间";
                deltaTime.Width = 60;
                listView1.Columns.Add(deltaTime);
                ColumnHeader comment = new ColumnHeader();
                comment.Text = "备注";
                comment.Width = 250;
                listView1.Columns.Add(comment);
                //填入数据
                lvi = new ListViewItem("666");//第0列是日期
                lvi.SubItems.Add("666");//第一列是类别下拉框
                lvi.SubItems.Add("666");//输入好的任务描述信息
                lvi.SubItems.Add("666");//开始时间
                lvi.SubItems.Add("666");//结束时间 暂时为空
                lvi.SubItems.Add("666");//中断时间
                lvi.SubItems.Add("666");//净时间
                lvi.SubItems.Add("666");//备注信息填入
                listView1.Items.Add(lvi);//添加一行
    
            }
    

      然后开始运行程序,此时出现以下画面:

    点击导出按钮,得到excel表格,并可以选择存到指定目录下或默认路径下。

    其核心代码如下:

            private void button1_Click(object sender, EventArgs e)
            {
                Excelex ee = new Excelex();
                ee.Create();
                ee.ws = ee.AddSheet("第一周");
                //循环保存写入数据
                ee.SetCellValue("第一周", 1, 1, "日期");
                ee.SetCellValue("第一周", 1, 2, "类别");
                ee.SetCellValue("第一周", 1, 3, "任务");
                ee.SetCellValue("第一周", 1, 4, "开始时间");
                ee.SetCellValue("第一周", 1, 5, "结束时间");
                ee.SetCellValue("第一周", 1, 6, "中断时间");
                ee.SetCellValue("第一周", 1, 7, "净时间");
                ee.SetCellValue("第一周", 1, 8, "备注");
                for (int i = 0; i < listView1.Items.Count; i++)
                {
                    for (int j = 0; j < 8; j++)
                    {
                        ee.SetCellValue("第一周", i + 2, j + 1, listView1.Items[i].SubItems[j].Text);
                    }
                }
                ee.app.Visible = true;//用excel打开,显示出来。
                ee.SaveAs("F:\WPS\newg.xls");
                MessageBox.Show("保存成功!请在****查看!");
                ee.Close();
            }
    //创建一个Microsoft.Office.Interop.Excel对象

         public void Create() { app = new Microsoft.Office.Interop.Excel.Application(); wbs = app.Workbooks; wb = wbs.Add(true); }
    //ws:要设值的工作表的名称 X行Y列 value 值

         public void SetCellValue(string ws, int x, int y, object value) {    GetSheet(ws).Cells[x, y] = value; }  
    //文档另存为
            public bool SaveAs(object FileName)
            
            {
                try
                {
                    wb.SaveAs(FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    return true;
                }
    
                catch (Exception ex)
                {
                    return false;
    
                }
            }
  • 相关阅读:
    电路开发软件积累
    .NET移动开发环境搭建
    Microsoft SQL Server Express各版本对比
    .NET IL指令速查表
    C#访问加密的SQLite数据库
    C#中时间计算方法汇总
    最佳C/C++编辑器 source insight3
    常用PHP框架收集
    CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑等
    Windows下Java JDK8配置环境变量
  • 原文地址:https://www.cnblogs.com/liuyaoze/p/7768896.html
Copyright © 2020-2023  润新知