DataGridView 导出Excel (封装)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DataGridView_Excel
{
/// <summary>
/// 先添加引用 Microsoft.Office.Interop.Excel(在.Net)
/// </summary>
public class DGVExcel
{
/// <summary>
/// 将多个DataGridView 导入到一个Excel里
/// </summary>
/// <param name="dgvlist"></param>
public void ALLdgvExportDataExcel(List<DataGridView> dgvlist)
{
)
{
string fileName = "";
string saveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
)
{
//被点了取消
return;
}
Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
if (xlapp == null)
{
MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
return;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlapp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
; i < dgvlist.Count; i++)
{
//取得sheet
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
worksheet.Name = dgvlist[i].Name;
//worksheet写入标题
; j < dgvlist[j].ColumnCount; j++)
{
worksheet.Cells[, j + ] = dgvlist[i].Columns[j].HeaderText;
}
//worksheet写入数值
; r < dgvlist[i].Rows.Count; r++)
{
; k < dgvlist[i].ColumnCount; k++)
{
worksheet.Cells[r + , k + ] = dgvlist[k].Rows[r].Cells[k].Value;
}
System.Windows.Forms.Application.DoEvents();
}
//列宽自适应
worksheet.Columns.EntireColumn.AutoFit();
}
MessageBox.Show(fileName + "保存成功!", "提示", MessageBoxButtons.OK);
if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName); //fileSaved = true;
}
catch (Exception ex)
{
//fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
xlapp.Quit();
//强行销毁(强制回收)
GC.Collect();
}
}
/// <summary>
/// 将一个DataGridView导入Excel
/// </summary>
/// <param name="dgv"></param>
public void OnedgvExportDataExcel(DataGridView dgv)
{
string fileName = "";
string saveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = fileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
)
{
//被点了取消
return;
}
Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
if (xlapp == null)
{
MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
return;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlapp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
//取得sheet1
Microsoft.Office.Interop.Excel.Worksheet worksheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
worksheet1.Name = dgv.Name;
//worksheet1写入标题
; i < dgv.ColumnCount; i++)
{
worksheet1.Cells[, i + ] = dgv.Columns[i].HeaderText;
}
//worksheet1写入数值
; r < dgv.Rows.Count; r++)
{
; i < dgv.ColumnCount; i++)
{
worksheet1.Cells[r + , i + ] = dgv.Rows[r].Cells[i].Value;
}
System.Windows.Forms.Application.DoEvents();
}
//列宽自适应
worksheet1.Columns.EntireColumn.AutoFit();
MessageBox.Show(fileName + "保存成功!", "提示", MessageBoxButtons.OK);
if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName); //fileSaved = true;
}
catch (Exception ex)
{
//fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
xlapp.Quit();
//强行销毁(强制回收)
GC.Collect();
}
}
}
DataGridView 导出Excel (封装)的更多相关文章
- 从DataGridView导出Excel
从DataGridView导出Excel的两种情况,不多说,直接记录代码(新建类,直接引用传入参数). using System; using System.Collections.Generic; ...
- Workbook导出excel封装的工具类
在实际中导出excel非常常见,于是自己封装了一个导出数据到excel的工具类,先附上代码,最后会写出实例和解释.支持03和07两个版本的 excel. HSSF导出的是xls的excel,XSSF导 ...
- c# datagridview导出Excel文件 问题
今天vs2010c#开发做datagridview导出Excel文件时,发现一个问题,和大家探讨一下: 第一种方式:写流的方式 private void button_Excel_Click(obje ...
- 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)
假如数据库表中某个字段存放的值“1”和“0”分别代表“是”和“否”,要在DataGridView中显示“是”和“否”,一般用两种方法,一种是在sql中直接判断获取,另一种是在DataGridView的 ...
- C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
/// <summary> /// DataGridView导出至Excel,解决问题:打开Excel文件格式与扩展名指定格式不一致 /// </summary> /// &l ...
- DataGridView导出Excel
将DataGridView里面的数据,导出到表格里面去. 首先,需要添加三个引用 直接在解决方案里,右键添加引用,找到路径即可.然后再把这三个文件复制到项目的根目录下. 然后定义导出表格的函数: pu ...
- C# DataGridView导出Excel
using Microsoft.Office.Interop.Excel; using Excel=Microsoft.Office.Interop.Excel; //这 ...
- winform datagridview 导出excel
using System;using System.Collections.Generic;using System.Text;using System.IO;using Microsoft.Offi ...
- JAVA导出Excel封装
1.数据bean public class ExcelBean { private String name; private String sheetName; private ExcelTitle[ ...
随机推荐
- 004 Thymeleaf学习笔记
1.Thymeleaf概述 SpringBoot并不推荐使用jsp,但是支持一些模板引擎技术:Freemarker.Thymeleaf.Mustache. 简单说, Thymeleaf 是一个跟 Ve ...
- Three.js场景的基本组件
1.场景Scene THREE.Scene被称为场景图,可以用来保存所有图形场景的必要信息.每个添加到Scene的对象,包括Scene自身都继承自名为THREE.Object3D对象.Scene不仅仅 ...
- Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号
在使用mybatis进行批量插入时,发现对于使用Oracle的自动增长序列时提示 : ORA-02287: 此处不允许序号 的错误,下面的这种使用可以解决问题: <!-- 批量插入 --> ...
- Java开发笔记(一百四十三)FXML布局的基本格式
前面介绍了JavaFX的常见控件用法,虽然JavaFX控件比起AWT与Swing要好用些,但是一样通过代码编写控件界面,并没有提高什么开发效率.要想浏览界面的展示效果,都必须运行测试程序才能观看,即使 ...
- 属性动画 补间动画 帧动画 基本使用案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- springboot使用HttpSessionListener 监听器统计当前在线人数
概括: request.getSession(true):若存在会话则返回该会话,否则新建一个会话. request.getSession(false):若存在会话则返回该会话,否则返回NULL ht ...
- Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度
原文:Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能 ...
- 2019 苏宁控股java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.苏宁等公司offer,岗位是Java后端开发,因为发展原因最终选择去了苏宁,入职一年时间了,也成为了面试官,之 ...
- Android canvas.save()与canvas.restore()的使用总结
含义canvas.save(); 画布将当前的状态保存canvas.restore(); 画布取出原来所保存的状态使用 canvas.save();与canvas.restore();一般结合使用,. ...
- c# 将两个表的有效数据合到一个表中
<asp:DropDownList ID="ddlSpecialty" runat="server" > </asp:DropDownList ...