本篇博客是记录自己实现的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; }
}

excel导出功能原型的更多相关文章

  1. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  2. 用SpringMvc实现Excel导出功能

    以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...

  3. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  4. excel导出功能优化

    先说说优化前,怎么做EXCEL导出功能的: 1. 先定义一个VO类,类中的字段按照EXCEL的顺序定义,并且该类只能用于EXCEL导出使用,不能随便修改. 2. 将查询到的结果集循环写入到这个VO类中 ...

  5. java利用EasyPoi实现Excel导出功能

    easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言( ...

  6. asp.net excel导出功能

    以下是我在项目开发中所做的关于Excel导出功能,不足之处还望大家指正,相互学习 protected void btn_Export_Click(object sender, EventArgs e) ...

  7. 使用NPOI实现简单的Excel导出功能

    [1]NPOI是啥? NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. POI是一个开源的Java读写Excel. ...

  8. Delphi实现带有格式的Excel导出功能

    功能预览 运行预览 模板样式 存储返参 导出的Excel 2. 代码实现 //执行sql的函数 procedure TForm1.GetReportData(astrsql:string); var ...

  9. java(POI):基于模版的Excel导出功能,局部列写保护总结

    需求描述: 1.导出的Excel中部分列包含有下拉列表,并没有尝试过用代码实现这种功能,个人感觉比较棘手,故采用了模版的形式,直接导出数据到已经创建好的Excel模版中 2.Excel的第一列需要写保 ...

随机推荐

  1. 每天一个linux命令(1):find命令之exec

    ind是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释:-exec 参数后面跟的是command命令, ...

  2. 基于 HTML5 Canvas 的 Web SCADA 组态电机控制面板

    前言 HT For Web 提供完整的基于 HTML5 图形界面组件库.您可以轻松构建现代化的,跨桌面和移动终端的企业应用,无需担忧跨平台兼容性,及触屏手势交互等棘手问题.也可用于快速创建和部署,高度 ...

  3. vue--slot插槽的使用方式

    slot 插槽可以在子组件中为父组件要传递的标签占位置  能够有效的减少代码冗余  使代码更加有逼格 第一个例子 <body> <div class="app"& ...

  4. Python-type函数使用

  5. C++:bitset用法

    std::bitset是STL的一部分,准确地说,std::bitset是一个模板类,它的模板参数不是类型,而整形的数值(这一特性是ISO C++2003的新特性),有了它我们可以像使用数组一样使用位 ...

  6. 最近公共祖先 lca (施工ing)

    声明 咳咳,进入重难点的图论算法之一(敲黑板): 题目: 洛谷 P3379 先放标程,施工ing,以后补坑!!!(实在太难,一个模板这么长 [ 不过好像还是没有 AC自动机 长哎 ],注释都打半天,思 ...

  7. 20155233刘高乐 第二周课堂实践以及MyOD

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so? 2. 提交共 ...

  8. m2eclipse安装遇到的问题——备忘

    手贱把m2eclipse给卸载了,结果重新安装的时候,发现原来的网址不好用了,去官网查了发现改成了http://download.eclipse.org/technology/m2e/releases ...

  9. [IOI2011]Race 点分治

    [IOI2011]Race LG传送门 点分治板子题. 直接点分治统计,统计的时候开个桶维护下就好了. 注(tiao)意(le)细(hen)节(jiu). #include<cstdio> ...

  10. angularJS ng-repeat中的directive 动态加载template

    有个需求,想实现一个html组件,传入不同的typeId,渲染出不同的表单元素. <div ng-repeat="field in vm.data"> <magi ...