C#WinFrom导出Excel过程解析

这篇文章主要介绍了C#WinFrom导出Excel过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

采用的是以DataGridView的形式导出,使用NPOI.dll

1.由于使用的是DataGridView,所以类需要创建在From的Project下,DLL导入NPOI

2.代码如下

ExportExcel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NPOI.SS.UserModel;    //NPOI
using NPOI.HSSF.Util;      //NPOI
using NPOI.HSSF.UserModel;   //NPOI
using NPOI.XSSF.UserModel;   //NPOI
using System.IO;
namespace ESMT
{
  public class ExportExcel
  {
    /// <summary>
    ///
    /// </summary>
    /// <param name="grdview">数据表</param>
    /// <param name="sheetName">工作簿名字</param>
    /// <param name="FilePath">文件路径</param>
    /// <param name="columnTitle">列头</param>
    public void ExportToExcel(DataGridView grdview, string sheetName, string FilePath, string[] columnTitle)
    {

      //不允许dataGridView显示添加行,负责导出时会报最后一行未实例化错误
      grdview.AllowUserToAddRows = false;
      HSSFWorkbook workbook = new HSSFWorkbook();
      ISheet sheet = workbook.CreateSheet(sheetName);//创建工作簿
      //设置表头
      IRow headerRow = sheet.CreateRow(0);//创建第一行
      headerRow.HeightInPoints = 40;
      headerRow.CreateCell(0).SetCellValue("出库表单");//单元格赋值
      ICellStyle headStyle = workbook.CreateCellStyle();
      headStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//格式居中
      IFont font = workbook.CreateFont();
      font.Boldweight = 500;
      font.FontHeightInPoints = 20;
      headStyle.SetFont(font);
      headerRow.GetCell(0).CellStyle = headStyle;
      sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, grdview.ColumnCount - 2));//单元格合并 最后个参数是合并个数

      IRow headerRow2 = sheet.CreateRow(1);//创建第二行列头
      ICellStyle headStyle2 = workbook.CreateCellStyle();
      headStyle2.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
      IFont font2 = workbook.CreateFont();
      font2.FontHeightInPoints = 10;
      font2.Boldweight = 700;
      headStyle2.SetFont(font2);
      for (int l = 0; l < grdview.ColumnCount - 1; l++) //列头填值
      {
        headerRow2.CreateCell(l).SetCellValue(columnTitle[l]);
        headerRow2.GetCell(l).CellStyle = headStyle2;
      }

      //设置列宽
      for (int l = 0; l < grdview.Columns.Count; l++)
      {
        sheet.DefaultColumnWidth = 15;
      }

      //填写内容
      for (int i = 0; i < grdview.Rows.Count; i++)
      {
        IRow row = sheet.CreateRow(i + 2);
        for (int j = 1; j < grdview.Columns.Count; j++)
        {
          row.CreateCell(j - 1, CellType.String).SetCellValue(grdview.Rows[i].Cells[j].Value.ToString());//j-1表示哪个单元格
        }
      }

      using (FileStream stream = File.OpenWrite(FilePath))//创建Excel并写入数据
      {
        workbook.Write(stream);
        stream.Close();
      }
      GC.Collect();
    }
  }
}

PS:openwtrie 打开或者创建新的文件写入

3.From窗口点击导出按钮

导出按钮

string[] columnTitle = { "序号", "仓位", "Facility", "供应商料号", "料号", "料卷ID", "料卷数量", "储位号", "Date Code/Lot", "生产日期", "供应商编码", "入仓时间" };
      string localFilePath = "";// fileNameExt, newFileName, FilePath;
      SaveFileDialog sfd = new SaveFileDialog();//保存文件窗口
      //设置文件类型
      sfd.Filter = "Excel(97-2003)|*.xls";//保存类型为EXCEL
      //保存对话框是否记忆上次打开的目录
      sfd.RestoreDirectory = true;

      //点了保存按钮进入
      if (sfd.ShowDialog() == DialogResult.OK)
      {
        localFilePath = sfd.FileName.ToString(); //获得文件路径
        ex.ExportToExcel(grdData, "出库表单", localFilePath, columnTitle);
      }

通过以上三步,完成点击导出按钮,后选择保存位置并命名,调用EportExcel方法完成导出Excel。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#插入图片到Excel表格单元格代码详解

    dll文件获取及引用: 方法1:通过官网下载dll文件包,并解压.解压文件后,将bin文件夹下的Spire.Xls.dll文件引用到C#程序. 方法2:通过Nuget网站获取dll. C#代码示例 using Spire.Xls; using System.Drawing; namespace InsertImage_XLS { class Program { static void Main(string[] args) { //创建Workbook对象 Workbook workbook =

  • C# 导出Excel的6种简单方法实现

    作者 | Johnson Manohar 译者 | 谭开朗,责编 | 黄浩然 出品 | CSDN(ID:CSDNnews) Syncfusion Excel (XlsIO) 库是一个 .Net Excel 库,它支持用户用 C# 和 VB.NET 以一个非常简易的方式,将各种数据源(如数据表,数组,对象集合,数据库,CSV / TSV,和微软网格控件等)数据导出到 Excel . 将数据导出到 Excel 可以以更容易理解的方式可视化数据.该特性有助于生成财务报告.银行报表和发票,同时还支持筛选

  • C#获取Excel第一列的实例方法

    演示C#读取Excel文档,以及展示读取结果. 打开Vistual Studio开发工具软件,新建一个读取Excel的demo项目,包括一个可视窗体,项目工程结构如下图所示. 打开工程->引用->右键->添加引用,导入读取excel文件必要引用,主要是NPOI的一些组件.导入成功,如下图所示. 创建一个简单的可视窗体,窗体上控件包括:打开文件.读取文件按钮,显示读取结果的文本控件等. 主窗体代码中,操作读取文件时,调用类ExcelClass中的readExcelData_NPOI方法.如

  • C#中Winfrom默认输入法的设置方法

    本文实例讲述了C#中Winfrom默认输入法的设置方法.分享给大家供大家参考.具体分析如下: 在WINFORM中我们经常遇到文本输入框中输入法被禁用或老是变全角输入法等问题,经查阅相关资料,现小结如下: 一.Control.ImeMode 属性:获取或设置控件的输入法编辑器 (IME) 模式. (1)由于窗体属性继承关系,如果你的WINFORM窗体中大部分需要设置为输入法有效状态,可以设置为FORM的ImeMode属性为On. (2)如果需要某些TextBox为输入法有效,则使用ImeMode.

  • C# winfrom 模拟ftp文件管理实现代码

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; using System.Windows.Forms; namespace ConvertData{    class FtpUpDown    { string ftpServerIP;        string ftpUserID;        string ftp

  • C#利用VS中插件打包并发布winfrom程序

    本文为大家分享了C#利用VS中插件打包并发布winfrom程序,供大家参考,具体内容如下 1.先在VS 的扩展更新中搜索此插件[2015 installer Projects],点击下载,安装需要关闭VS 2.安装完毕之后新建项目 3.选择"application folder"项,然后在右边的空白区域右击,选择Add,如下图 4.选择需要打包发布的exe文件 这里会自动带出相关联的dll文件,如图: 5.选中程序主入口也就是exe后缀的文件右键添加快捷方式,这里需要添加两个快捷方式,

  • C# winfrom实现读取修改xml

    本文示例为大家分享了winfrom实现读取修改xml的具体代码,供大家参考,具体内容如下 在winfrom窗体中放一个文本框,2个按钮,一个panle,如下图 form.cs文件中的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

  • C#WinFrom导出Excel过程解析

    这篇文章主要介绍了C#WinFrom导出Excel过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 采用的是以DataGridView的形式导出,使用NPOI.dll 1.由于使用的是DataGridView,所以类需要创建在From的Project下,DLL导入NPOI 2.代码如下 ExportExcel using System; using System.Collections.Generic; using System.Linq

  • springboot实现上传并解析Excel过程解析

    添加pom依赖 <!-- excel解析包 --> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <!--处理2003 excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16<

  • elementUI+Springboot实现导出excel功能的全过程

    目录 前言 步骤 依赖包 element表格table 引入包 编写方法 完整实例 最终导出结果 结语 前言 在前面,我们其实已经完成了elementUI+springboot的导入功能springboot实现上传并解析Excel过程解析那么,现在也对这个导出功能进行一个汇总整理写出来其实,导出功能相对导入功能还是比较简单,本次不需要考虑到后端 步骤 依赖包 首先,我们需要引入vue的依赖包我用的是这个 npm install xlsx@^0.16.0 npm install file-save

  • Django Admin中增加导出Excel功能过程解析

    在使用Django Admin时, 对于列表我们有时需要提供数据导出功能, 如下图: 增加导出Excel功能 在Django Admin中每个模型的Admin类(继承至admin.ModelAdmin), 我们可以通过actions增加支持的动作, 值为当前类存在的方法名, 例如: ....... @admin.register(Issue) class IssueAdmin(admin.ModelAdmin): ...... actions = ['export_as_excel'] # 增加

  • Java大批量导出Excel数据的优化过程

    目录 背景 问题和解决方案 遇到的问题 解决步骤 整理工具类 参考资料 背景 团队目前在做一个用户数据看板(下面简称看板),基本覆盖用户的所有行为数据,并生成分析报表,用户行为由多个数据来源组成(餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业.运动健康...), 基于大量数据的组合.排序和统计.根据最新的统计报告,每天将近100W+的行为数据产生,所以这个数据基数是非常大的. 而这个数据中心,对接很多的业务团队,这些团队根据自己的需要,对某些维度进行筛选,然后直接从我

  • 通过openpyxl读取excel文件过程解析

    这篇文章主要介绍了通过openpyxl读取excel文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.环境准备 python3环境.安装openpyxl模块 2.excel文件数据准备 3.为方便直接调用,本代码直接封装成类 from openpyxl import load_workbook class DoExcel: def __init__(self,filename): ''' :param filename: exce

  • Java导出网页表格Excel过程详解

    将网页中的table数据,导出到excel表格,可以使用java POI实现. java poi是java中操作excel的工具,支持excel的导入与导出,一般有三种形式: 1.HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls: 2.XSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx: 3.SXSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx: 首先对这三种方式进行一个对比: 1.HSSFWo

  • 使用纯前端JavaScript实现Excel导入导出方法过程详解

    公司最近要为某国企做一个**统计和管理系统, 具体要求包含 Excel导入导出根据导入的数据进行展示报表图表展示(包括柱状图,折线图,饼图),而且还要求要有动画效果,扁平化风格Excel导出,并要提供客户端来管理Excel 文件... 要求真多! 现在总算是完成了,于是将我的经验分析出来. 在整个项目架构中,首先就要解决Excel导入的问题. 由于公司没有自己的框架做Excel IO,就只有通过其他渠道了. 嗯,我在github上找到了一个开源库xlsx,通过npm方式来安装. npm inst

  • SQL Server2008导出数据之Excel详细解析

    最近在看数据库方面的书籍和视频,我觉得数据库的导入和导出很有用,顺便做一下总结,以免将来有遗忘啊!其实导入和导出很相似,思路是一样的,还有导入导出文本,Acess,Excel等等模板也都挺相似的,所以我就总结导出Excel吧.下面请看步骤: 1.首先需要准备的是在你的电脑上创建一个Excel表格(我创建在了桌面上)如图所示(是空的): 2.在SQL Server2008的企业管理器中选择你想要导出的数据库,如图所示. 3.右击选择任务---->导出数据库 4.点击导出数据,出现如图界面. 5.单

  • GridView选择性导出Excel解决方案

    一.需求分析 首先根据用户需求,可以进行选择性导出,之前已经做了全部导出,这次新需求又来了,不过仔细想想也对,全部导出几万条数据,意义并不大,而可选择性的导出用户需要的数据才是用户需要的.有需求就有解决方法. 任何问题的解决方法都不止一个,GridView的选择性导出也一样,首先GridView绑定的是数据库的表数据,选择导出,我们也可以从数据中查询需要的数据,可以直接从前台GridView表中取得数据,问题来了,怎么判断选中了,怎么后去选中的那条信息的主键(或者获得整条信息)两个方向,到底哪个

随机推荐