private void 导出excelToolStripMenuItem_Click(object sender, EventArgs e)
{
if (dgvData.RowCount > )
{
var saveFileDialog1 = new SaveFileDialog
{
Filter = @"Excel文件(*.xls,*.xlsx)|*.xls;*.xlsx",
RestoreDirectory = true
}; if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
var result = _excel.SetExportExcel(saveFileDialog1.FileName, dgvData, );
if (result != null)
{
MessageBox.Show(result.HasError ? "文件导出成功!!" : result.ErrorMessage);
}
}
}
else
{
MessageBox.Show(@"数据为空!!");
}
} /// <summary>
/// DataGridView 导出Excel方法
/// </summary>
/// <param name="fileName">导出路径</param>
/// <param name="gridView">数据源</param>
/// <param name="num">从第几列开始导</param>
public Result SetExportExcel(string fileName, DataGridView gridView, int num)
{
var result = new Result(); if (fileName.IndexOf(":") > )
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null)
{
result.ErrorMessage = "无法创建Excel对象,可能您的机子未安装Excel";
result.HasError = false;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook =
workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet =
(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[]; //取得sheet1 int a = , b = ;
for (var i = ; i < gridView.RowCount; i++)
{
if (i == )
{
for (var j = num; j < gridView.Columns.Count; j++)
{
worksheet.Cells[, a] = gridView.Columns[j].HeaderText;
a++;
}
}
for (var j = num; j < gridView.Columns.Count; j++)
{
worksheet.Cells[i + , b] = gridView.Rows[i].Cells[j].Value;
b++;
}
b = ;
System.Windows.Forms.Application.DoEvents();
} worksheet.Columns.EntireColumn.AutoFit(); //列宽自适应
if (fileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(fileName);
}
catch (Exception ex)
{
result.ErrorMessage = "文件导出时出错,文件可能正被打开!" + ex.Message;
result.HasError = false;
}
}
xlApp.Quit();
GC.Collect(); //强行销毁
result.HasError = true;
}
return result;
} /// <summary>
/// ListView 导出Excel方法
/// </summary>
/// <param name="fileName">导出路径</param>
/// <param name="listView">数据源</param>
/// <param name="num">从第几列开始导</param>
public Result SetListViewExportExcel(string fileName, ListView listView, int num)
{
var result = new Result(); if (fileName.IndexOf(":") > )
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null)
{
result.ErrorMessage = "无法创建Excel对象,可能您的机子未安装Excel";
result.HasError = false;
}
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook =
workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet =
(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[]; //取得sheet1 int a = , b = ;
for (var i = ; i < listView.Items.Count; i++)
{
if (i == )
{
for (var j = num; j < listView.Columns.Count; j++)
{
worksheet.Cells[, a] = listView.Columns[j].Text;
a++;
}
}
for (var j = num; j < listView.Columns.Count; j++)
{
worksheet.Cells[i + , b] = listView.Items[i].SubItems[j].Text;
b++;
}
b = ;
System.Windows.Forms.Application.DoEvents();
} worksheet.Columns.EntireColumn.AutoFit(); //列宽自适应
if (fileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(fileName);
}
catch (Exception ex)
{
result.ErrorMessage = "文件导出时出错,文件可能正被打开!" + ex.Message;
result.HasError = false;
}
}
xlApp.Quit();
GC.Collect(); //强行销毁
result.HasError = true;
}
return result;
}

Winform 导出Excel的更多相关文章

  1. c# winform导出Excel

    //需要注意添加引用Microsoft.Office.Interop.Excel.dll string fileName =DateTime.Now.Year+ DateTime.Now.Month+ ...

  2. winform导出excel

    public void AllDataSetToExcel(DataSet ds) { string saveFileName = ""; bool fileSaved = fal ...

  3. C#导入导出Excel表的数据

    一:C#导入导出EXCEL文件的类 代码如下: 首先将Microsoft Excel 14.0 Object Library 引用导入 using System; using System.Data; ...

  4. winform导入导出excel,后台动态添加控件

    思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...

  5. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  6. C# winform 导出导入Excel/Doc 完整实例教程[网上看到的]

    还真没做过winform的导出导入,今天上网百度了一下.结果--- 所以还是我自己写个吧.之前做过web的,半搬半做就OK. 1添加引用:Aspose.Cells.dll(我们就叫工具包吧,可以从网上 ...

  7. 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法

       懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法    github地址:https://github.com/Jimmey-Jiang/J ...

  8. NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中

    由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案. 注意:若直接使用在WinForm项目中,必需先下 ...

  9. C#+Aspose.Cells 导出Excel及设置样式 (Webform/Winform)

    在项目中用到,特此记录下来,Aspose.Cells 不依赖机器装没有装EXCEL都可以导出,很方便.具体可以参考其他 http://www.aspose.com/docs/display/cells ...

随机推荐

  1. 解析 iOS 动画原理与实现

    这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式. 什么是动画 动画,顾名思义,就是能“动”的画.人的眼睛对图像有短暂的记忆效应,所以当眼睛看到 ...

  2. java cpu load

    $ps -Lp 179093 cu | more USER PID LWP %CPU NLWP %MEM VSZ RSS TTY STAT START TIME COMMAND admin 17909 ...

  3. 【HTML5 4】《HTML5与CSS3权威指南》 step1 导读

    一.教程重点:以 HTML5和CSS3的新功能和新特性 为导向,辅之以 实战型实例页面 二.内容概况: 第1部分:详细讲解HTML5相关知识,包括 各主流浏览器对HTML5的支持情况. HTML5与H ...

  4. ubuntu 换源

    经过自己一番折腾后,发现用这个方法换源最简单.直接. sudo vi /etc/apt/sources.list 把sources.list里面的内容全部替换为一下内容 deb http://mirr ...

  5. HTML <input> 标签的 maxlength 属性

    前端的表单,需要进行验证. 结合JS表单验证框架,写了很多前端验证的代码. 其中,有这么一个需求:用户最多只能输入10个字符. 按照惯性,肯定是会去写JS表单验证了. 实际上,根本没有必要. HTML ...

  6. EasyGUI的安装

    1.下载EasyGUI 在官方网站上下载http://easygui.sourceforge.net/将安装包下载下来,放到桌面上并解压. 2.安装EasyGUI ①在开始菜单的搜索中输入cmd,打开 ...

  7. ionic 项目的启动屏幕

    首先要做好图片,图片的大小最好是192px*192px(icon.png).2208px*2208px(splash.png); 然后在APP项目中建立一个新文件夹,resources,将准备好的两张 ...

  8. 微软测试版Visual Studio for Mac下载

    地址:https://www.visualstudio.com/thank-downloading-visual-studio-mac/?sku=vsmac#

  9. [Wordpress]wp_dropdown_categories() 添加自定义的attribute(属性)

    通过Wordpress wp_dropdown_categories()可以获取到Wordpress中的分类列表,假如需要添加一些Html5属性,如required,在看了这个方法的文档说明,没有参数 ...

  10. 深入浅出ExtJS 第六章 布局

       6.1 布局的用途 6.1 布局的用途 //决定把什么东西放到什么位置; var vieport = new Ext.Viewport({ layout:'border', //使用Border ...