一:例子截图:

二:NPOI截图

三:EmployeeListWindow.cs代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using HRMSys.DAL;
  10. using HRMSys.Model;
  11. using System.Data.SqlClient;
  12. using NPOI.HSSF.UserModel;
  13. using NPOI.SS.UserModel;
  14. using System.IO;
  15.  
  16. namespace HYMSys.UI.EmployeeMgr
  17. {
  18. public partial class EmployeeListWindow : Form
  19. {
  20. public EmployeeListWindow()
  21. {
  22. InitializeComponent();
  23. }
  24. /// <summary>
  25. /// 加载所有信息
  26. /// </summary>
  27. public EmployeeList[] load()
  28. {
  29. EmployeeDAL de = new EmployeeDAL();
  30.  
  31. return de.ListAll();
  32.  
  33. }
  34.  
  35. /// <summary>
  36. /// 添加员工
  37. /// </summary>
  38. /// <param name="sender"></param>
  39. /// <param name="e"></param>
  40. private void toolsb_add_Click(object sender, EventArgs e)
  41. {
  42. EmployeeEditWindow edit = new EmployeeEditWindow();
  43. edit.IsAdd = true;
  44. edit.ShowDialog();
  45.  
  46. if (edit.IsLoad == true)
  47. {
  48. dataGridView1.DataSource = load();
  49. }
  50.  
  51. }
  52. /// <summary>
  53. /// 删除员工
  54. /// </summary>
  55. /// <param name="sender"></param>
  56. /// <param name="e"></param>
  57. private void toolsb_delete_Click(object sender, EventArgs e)
  58. {
  59. Guid id=(Guid)dataGridView1.CurrentRow.Cells[].Value;
  60. string name=(string)dataGridView1.CurrentRow.Cells[].Value;//这里的cell是相对于list员工操作窗口上name这列,即使第二行
  61. if (MessageBox.Show("真的要删除---"+name+"---吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.OK)
  62. {
  63. EmployeeDAL dal = new EmployeeDAL();
  64. dal.DeleteById(id);
  65. dataGridView1.DataSource = load();
  66. }
  67.  
  68. }
  69. /// <summary>
  70. /// 修改员工信息
  71. /// </summary>
  72. /// <param name="sender"></param>
  73. /// <param name="e"></param>
  74. private void toolsb_edit_Click(object sender, EventArgs e)
  75. {
  76. EmployeeEditWindow edit = new EmployeeEditWindow();
  77. edit.EditId = (Guid)dataGridView1.CurrentRow.Cells[].Value;
  78. edit.IsAdd = false;
  79. edit.ShowDialog();
  80. if (edit.IsLoad == true)
  81. {
  82. dataGridView1.DataSource = load();
  83. }
  84.  
  85. }
  86. /// <summary>
  87. /// 自动加载所有员工信息
  88. /// </summary>
  89. /// <param name="sender"></param>
  90. /// <param name="e"></param>
  91. private void EmployeeListWindow_Load(object sender, EventArgs e)
  92. {
  93. DepartmentDAL dal = new DepartmentDAL();
  94. cb_depart.DataSource = dal.ListAll();
  95. cb_depart.DisplayMember = "Name";
  96. cb_depart.ValueMember = "Id";
  97. //cb_depart.SelectedValue=
  98.  
  99. dtp_indate.Value = DateTime.Today.AddMonths(-);
  100. dtp_enddate.Value = DateTime.Today;
  101.  
  102. dataGridView1.DataSource= load();
  103.  
  104. }
  105. /// <summary>
  106. /// 综合查询
  107. /// </summary>
  108. /// <param name="sender"></param>
  109. /// <param name="e"></param>
  110. private void button1_Click(object sender, EventArgs e)
  111. {
  112. List<string> wherelist = new List<string>();
  113. List<SqlParameter> parameter = new List<SqlParameter>();
  114. if (ckb_name.Checked == true)
  115. {
  116. wherelist.Add("Name=@Name");
  117. parameter.Add(new SqlParameter("@Name",tb_name.Text));
  118.  
  119. }
  120. if (ckb_indate.Checked == true)
  121. {
  122. wherelist.Add("InDate>=@InDateStart and InDate<=@InDateEnd");
  123. parameter.Add(new SqlParameter("@InDateStart",dtp_indate.Value));
  124. parameter.Add(new SqlParameter("@InDateEnd",dtp_enddate.Value));
  125. }
  126. if (ckb_depart.Checked == true)
  127. {
  128. wherelist.Add("DepartmentId=@DepartmentId");
  129. parameter.Add(new SqlParameter("@DepartmentId",cb_depart.SelectedValue));
  130. }
  131.  
  132. string whereSql=string.Join(" and ",wherelist);
  133. string Sql="select * from T_Employee";
  134. if (whereSql.Length > )
  135. {
  136. Sql = Sql + " where " + whereSql;
  137. }
  138. EmployeeDAL dal = new EmployeeDAL();
  139. dataGridView1.DataSource= dal.SearchBySome(Sql, parameter);
  140.  
  141. }
  142. /// <summary>
  143. /// 导出到Excel
  144. /// </summary>
  145. /// <param name="sender"></param>
  146. /// <param name="e"></param>
  147. private void tsb_outputExcel_Click(object sender, EventArgs e)
  148. {
  149. SaveFileDialog saFi = new SaveFileDialog();//打开保存对话框
  150. saFi.Filter = "Excel文件|*.xls";//设置文件类型
  151. if (saFi.ShowDialog() != DialogResult.OK)//如果未打开对话框,返回
  152. {
  153. return;
  154. }
  155. string path = saFi.FileName;//得到文件的路径
  156. HSSFWorkbook workbook = new HSSFWorkbook();//创建一个Excel文档
  157. ISheet sheet = workbook.CreateSheet("员工操作");//创建一个Excel的页
  158.  
  159. IRow rowheader = sheet.CreateRow();//创建一个行,作为行头号
  160. rowheader.CreateCell(, CellType.STRING).SetCellValue("姓名");//第一行第一列显示姓名
  161. rowheader.CreateCell(, CellType.STRING).SetCellValue("工号");
  162. rowheader.CreateCell(, CellType.STRING).SetCellValue("入职日期");
  163.  
  164. EmployeeList[] list = (EmployeeList[])dataGridView1.DataSource;//得到datagridview的数据源,Excel的写入文件
  165. for (int i = ; i < list.Length; i++)//将写入的数据与Excel的单元格对应
  166. {
  167. EmployeeList li = list[i];//得到数据组的单条信息
  168. IRow row = sheet.CreateRow(i + );//创建一行
  169. row.CreateCell(, CellType.STRING).SetCellValue(li.Name);//将这行的第一列填上姓名
  170. row.CreateCell(, CellType.STRING).SetCellValue(li.Number);
  171.  
  172. //存入date这种格式的转换
  173. ICellStyle datestyle = workbook.CreateCellStyle();//创建一个单元格样式
  174. IDataFormat dateformamt = workbook.CreateDataFormat();//创建一个数据的固定格式
  175.  
  176. datestyle.DataFormat = dateformamt.GetFormat("yyyy\"年\"m\"月\"d\"日\"");//日期的样式采用这种数据格式
  177. //存日期的单元格指定他的格式
  178. ICell indate = row.CreateCell(, CellType.NUMERIC);
  179. indate.CellStyle = datestyle;
  180.  
  181. indate.SetCellValue(li.InDate);//给存日期的单元指定数据
  182.  
  183. }
  184. //Excel写入数据流
  185. using(Stream stream=File.OpenWrite(path))//创建一个写入流
  186. {
  187. workbook.Write(stream);//Excel写入数据流
  188. }
  189.  
  190. }
  191. }
  192. }

四:通过microsoft.visual basic.dll来导出

a.添加引用

b.调出excel,由于这个方法每次运行都会开一个进程,太占资源,没上面方法好用,这里不再做过多的介绍

c.

导出Excel文件,npoi方式和通过microsoft.visual basic.dll的更多相关文章

  1. 基于Vue + axios + WebApi + NPOI导出Excel文件

    一.前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件.其业务场景,主要是列表页 ...

  2. PHP导出excel文件的几种方式

    PHP导出excel文件的几种方式 先说说动态生成的内容当作文件来下载的方法: 1.通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来 ...

  3. 转:PHP导出excel文件的几种方式

    PHP导出excel文件的几种方式 文章来源:http://www.cnblogs.com/fredshare/archive/2012/10/29/2744243.html 先说说动态生成的内容当作 ...

  4. 关于NPOI导出excel文件(xls和xlsx两种格式)提示格式不符的问题

    这两天在做导出excel文件的时候遇到这个问题 本来我导出的格式是xlsx格式的,但是下载得到的文件格式变成了xls, 一开始以为是返回的contenttype设置错了 return File(ms, ...

  5. C# Microsoft.Office.Interop.Owc11 导出excel文件

    C# Microsoft.Office.Interop.Owc11 导出excel文件 1.新建项SupremeWindowsForms窗体应用项目(项目平台设置称X86) 注意:因为大多数第三方写的 ...

  6. 使用NPOI或EPPlus来导出Excel文件实例,可在Excel文件加密

    使用NPOI.dll组件来导出Excel文件,并设置样式,Nuget引用即可. packages\NPOI.2.1.3.1\lib\net20\NPOI.dll #region Excel prote ...

  7. 使用NPOI导出Excel文件

    使用NPOI导出Excel文件,本实例使用了ASP.NET MVC. 1.使用NPOI导出Excel文件 实例:导出商品列表. 要求:1.通过NPOI导出导出商品列表信息: 2.使用Excel函数计算 ...

  8. C#,使用NPOI,导出excel文件

    /// <summary> /// 导出excel文件 /// </summary> /// <param name="dt">Table表数据 ...

  9. c# datagridview导出Excel文件 问题

    今天vs2010c#开发做datagridview导出Excel文件时,发现一个问题,和大家探讨一下: 第一种方式:写流的方式 private void button_Excel_Click(obje ...

随机推荐

  1. CentOS安装最新的Mysql版本

    Step1: 检测系统是否自带安装mysql # yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖命令: # yum -y remove ...

  2. webGIS(离线版)研究路线归总

    特注:不做详解,说明网上资源很多,找一篇,照着走一遍即可. 1.数据源要满足开源.Free且地理信息要完善 几经周折,选择了OSM,具体信息可以去其官方查看(它竟然把中国一分为二,大陆.台湾,坑爹!! ...

  3. android入门系列- TextView EditText Button ImageView 的简单应用

    第一篇原创,其实自己就是一菜鸟,简单分享点基本知识吧.希望能有所帮助吧. TextView EditText Button ImageView 这几个控件可能是Android开发中最常用.最基本的几个 ...

  4. 游标中的static参数

    以下测试用例将演示,使用static的游标和不使用的区别: if object_id(N't_test',N'u') is not null drop table t_test go create t ...

  5. Mysql在php5中的应用

    1.PHP与mysql建立连接 php.ini加载mysql组件 extension=php_mysql.dll 前的;去掉 extension_dir=””路径是否正确 PHP连接mysql函数 m ...

  6. 解决kernel headers报错

    Make sure you have updated version $ sudo apt-get update Search for kernel version (optional) $ apt- ...

  7. winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法

    winows8.1或winows7 64bit 安装Itunes 64bit 11.1.3 无法打开一直停止工作的解决办法 系统环境变量里的Path追加 ;C:\program files (x86) ...

  8. 关于cocoapods和swift中使用oc第三方

    mac 系统自带ruby,使用cocoapods,直接安装cocoapods就行 终端:$ sudo gem install cocoapods {安装较慢是因为有墙,查看ruby镜像列表:$ gem ...

  9. 设置css三种方法的优先级

    有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在下面代码中就出现了这种情况 1.使用内联式CSS设置“超酷的互联网”文字为粉色. 2.然后使 ...

  10. 342. Power of Four

    题目: Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example ...