导出Excel文件,npoi方式和通过microsoft.visual basic.dll
一:例子截图:
二:NPOI截图
三:EmployeeListWindow.cs代码
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using HRMSys.DAL;
- using HRMSys.Model;
- using System.Data.SqlClient;
- using NPOI.HSSF.UserModel;
- using NPOI.SS.UserModel;
- using System.IO;
- namespace HYMSys.UI.EmployeeMgr
- {
- public partial class EmployeeListWindow : Form
- {
- public EmployeeListWindow()
- {
- InitializeComponent();
- }
- /// <summary>
- /// 加载所有信息
- /// </summary>
- public EmployeeList[] load()
- {
- EmployeeDAL de = new EmployeeDAL();
- return de.ListAll();
- }
- /// <summary>
- /// 添加员工
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void toolsb_add_Click(object sender, EventArgs e)
- {
- EmployeeEditWindow edit = new EmployeeEditWindow();
- edit.IsAdd = true;
- edit.ShowDialog();
- if (edit.IsLoad == true)
- {
- dataGridView1.DataSource = load();
- }
- }
- /// <summary>
- /// 删除员工
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void toolsb_delete_Click(object sender, EventArgs e)
- {
- Guid id=(Guid)dataGridView1.CurrentRow.Cells[].Value;
- string name=(string)dataGridView1.CurrentRow.Cells[].Value;//这里的cell是相对于list员工操作窗口上name这列,即使第二行
- if (MessageBox.Show("真的要删除---"+name+"---吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.OK)
- {
- EmployeeDAL dal = new EmployeeDAL();
- dal.DeleteById(id);
- dataGridView1.DataSource = load();
- }
- }
- /// <summary>
- /// 修改员工信息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void toolsb_edit_Click(object sender, EventArgs e)
- {
- EmployeeEditWindow edit = new EmployeeEditWindow();
- edit.EditId = (Guid)dataGridView1.CurrentRow.Cells[].Value;
- edit.IsAdd = false;
- edit.ShowDialog();
- if (edit.IsLoad == true)
- {
- dataGridView1.DataSource = load();
- }
- }
- /// <summary>
- /// 自动加载所有员工信息
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void EmployeeListWindow_Load(object sender, EventArgs e)
- {
- DepartmentDAL dal = new DepartmentDAL();
- cb_depart.DataSource = dal.ListAll();
- cb_depart.DisplayMember = "Name";
- cb_depart.ValueMember = "Id";
- //cb_depart.SelectedValue=
- dtp_indate.Value = DateTime.Today.AddMonths(-);
- dtp_enddate.Value = DateTime.Today;
- dataGridView1.DataSource= load();
- }
- /// <summary>
- /// 综合查询
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button1_Click(object sender, EventArgs e)
- {
- List<string> wherelist = new List<string>();
- List<SqlParameter> parameter = new List<SqlParameter>();
- if (ckb_name.Checked == true)
- {
- wherelist.Add("Name=@Name");
- parameter.Add(new SqlParameter("@Name",tb_name.Text));
- }
- if (ckb_indate.Checked == true)
- {
- wherelist.Add("InDate>=@InDateStart and InDate<=@InDateEnd");
- parameter.Add(new SqlParameter("@InDateStart",dtp_indate.Value));
- parameter.Add(new SqlParameter("@InDateEnd",dtp_enddate.Value));
- }
- if (ckb_depart.Checked == true)
- {
- wherelist.Add("DepartmentId=@DepartmentId");
- parameter.Add(new SqlParameter("@DepartmentId",cb_depart.SelectedValue));
- }
- string whereSql=string.Join(" and ",wherelist);
- string Sql="select * from T_Employee";
- if (whereSql.Length > )
- {
- Sql = Sql + " where " + whereSql;
- }
- EmployeeDAL dal = new EmployeeDAL();
- dataGridView1.DataSource= dal.SearchBySome(Sql, parameter);
- }
- /// <summary>
- /// 导出到Excel
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void tsb_outputExcel_Click(object sender, EventArgs e)
- {
- SaveFileDialog saFi = new SaveFileDialog();//打开保存对话框
- saFi.Filter = "Excel文件|*.xls";//设置文件类型
- if (saFi.ShowDialog() != DialogResult.OK)//如果未打开对话框,返回
- {
- return;
- }
- string path = saFi.FileName;//得到文件的路径
- HSSFWorkbook workbook = new HSSFWorkbook();//创建一个Excel文档
- ISheet sheet = workbook.CreateSheet("员工操作");//创建一个Excel的页
- IRow rowheader = sheet.CreateRow();//创建一个行,作为行头号
- rowheader.CreateCell(, CellType.STRING).SetCellValue("姓名");//第一行第一列显示姓名
- rowheader.CreateCell(, CellType.STRING).SetCellValue("工号");
- rowheader.CreateCell(, CellType.STRING).SetCellValue("入职日期");
- EmployeeList[] list = (EmployeeList[])dataGridView1.DataSource;//得到datagridview的数据源,Excel的写入文件
- for (int i = ; i < list.Length; i++)//将写入的数据与Excel的单元格对应
- {
- EmployeeList li = list[i];//得到数据组的单条信息
- IRow row = sheet.CreateRow(i + );//创建一行
- row.CreateCell(, CellType.STRING).SetCellValue(li.Name);//将这行的第一列填上姓名
- row.CreateCell(, CellType.STRING).SetCellValue(li.Number);
- //存入date这种格式的转换
- ICellStyle datestyle = workbook.CreateCellStyle();//创建一个单元格样式
- IDataFormat dateformamt = workbook.CreateDataFormat();//创建一个数据的固定格式
- datestyle.DataFormat = dateformamt.GetFormat("yyyy\"年\"m\"月\"d\"日\"");//日期的样式采用这种数据格式
- //存日期的单元格指定他的格式
- ICell indate = row.CreateCell(, CellType.NUMERIC);
- indate.CellStyle = datestyle;
- indate.SetCellValue(li.InDate);//给存日期的单元指定数据
- }
- //Excel写入数据流
- using(Stream stream=File.OpenWrite(path))//创建一个写入流
- {
- workbook.Write(stream);//Excel写入数据流
- }
- }
- }
- }
四:通过microsoft.visual basic.dll来导出
a.添加引用
b.调出excel,由于这个方法每次运行都会开一个进程,太占资源,没上面方法好用,这里不再做过多的介绍
c.
导出Excel文件,npoi方式和通过microsoft.visual basic.dll的更多相关文章
- 基于Vue + axios + WebApi + NPOI导出Excel文件
一.前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件.其业务场景,主要是列表页 ...
- PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 先说说动态生成的内容当作文件来下载的方法: 1.通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来 ...
- 转:PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 文章来源:http://www.cnblogs.com/fredshare/archive/2012/10/29/2744243.html 先说说动态生成的内容当作 ...
- 关于NPOI导出excel文件(xls和xlsx两种格式)提示格式不符的问题
这两天在做导出excel文件的时候遇到这个问题 本来我导出的格式是xlsx格式的,但是下载得到的文件格式变成了xls, 一开始以为是返回的contenttype设置错了 return File(ms, ...
- C# Microsoft.Office.Interop.Owc11 导出excel文件
C# Microsoft.Office.Interop.Owc11 导出excel文件 1.新建项SupremeWindowsForms窗体应用项目(项目平台设置称X86) 注意:因为大多数第三方写的 ...
- 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密
使用NPOI.dll组件来导出Excel文件,并设置样式,Nuget引用即可. packages\NPOI.2.1.3.1\lib\net20\NPOI.dll #region Excel prote ...
- 使用NPOI导出Excel文件
使用NPOI导出Excel文件,本实例使用了ASP.NET MVC. 1.使用NPOI导出Excel文件 实例:导出商品列表. 要求:1.通过NPOI导出导出商品列表信息: 2.使用Excel函数计算 ...
- C#,使用NPOI,导出excel文件
/// <summary> /// 导出excel文件 /// </summary> /// <param name="dt">Table表数据 ...
- c# datagridview导出Excel文件 问题
今天vs2010c#开发做datagridview导出Excel文件时,发现一个问题,和大家探讨一下: 第一种方式:写流的方式 private void button_Excel_Click(obje ...
随机推荐
- CentOS安装最新的Mysql版本
Step1: 检测系统是否自带安装mysql # yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖命令: # yum -y remove ...
- webGIS(离线版)研究路线归总
特注:不做详解,说明网上资源很多,找一篇,照着走一遍即可. 1.数据源要满足开源.Free且地理信息要完善 几经周折,选择了OSM,具体信息可以去其官方查看(它竟然把中国一分为二,大陆.台湾,坑爹!! ...
- android入门系列- TextView EditText Button ImageView 的简单应用
第一篇原创,其实自己就是一菜鸟,简单分享点基本知识吧.希望能有所帮助吧. TextView EditText Button ImageView 这几个控件可能是Android开发中最常用.最基本的几个 ...
- 游标中的static参数
以下测试用例将演示,使用static的游标和不使用的区别: if object_id(N't_test',N'u') is not null drop table t_test go create t ...
- Mysql在php5中的应用
1.PHP与mysql建立连接 php.ini加载mysql组件 extension=php_mysql.dll 前的;去掉 extension_dir=””路径是否正确 PHP连接mysql函数 m ...
- 解决kernel headers报错
Make sure you have updated version $ sudo apt-get update Search for kernel version (optional) $ apt- ...
- winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法
winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法 系统环境变量里的Path追加 ;C:\program files (x86) ...
- 关于cocoapods和swift中使用oc第三方
mac 系统自带ruby,使用cocoapods,直接安装cocoapods就行 终端:$ sudo gem install cocoapods {安装较慢是因为有墙,查看ruby镜像列表:$ gem ...
- 设置css三种方法的优先级
有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在下面代码中就出现了这种情况 1.使用内联式CSS设置“超酷的互联网”文字为粉色. 2.然后使 ...
- 342. Power of Four
题目: Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example ...