导出Excel
2016-07-04 21:02
387 查看
我们在机房收费系统中应用的比较多的就是Excel导出的功能了,下边总结一下代码。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Office.Interop.Excel; using Microsoft.Office.Core; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.OleDb; using System.Threading; namespace UI { public class Excel { public void RExcel(string name,DataGridView dgv) { //总可见列数,总可见行数 int colCount = dgv.Columns.GetColumnCount(DataGridViewElementStates.Visible); int rowCount = dgv.Rows.GetRowCount(DataGridViewElementStates.Visible); //dataGridView 没有数据提示 if (dgv.Rows.Count == 0 || rowCount == 0) { MessageBox.Show("表中没有数据", "提示"); } else { //选择创建文件的路径 SaveFileDialog save = new SaveFileDialog(); save.Filter = "excel files(*.xlsx)|*.xlsx"; save.Title = "请选择要导出数据的位置"; save.FileName = name + DateTime.Now.ToLongDateString(); if (save.ShowDialog() == DialogResult.OK) { string fileName = save.FileName; //MessageBox.Show(save.FileName); // 创建Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); if (excel == null) { MessageBox.Show("Excel无法启动", "提示"); return; } //创建Excel工作薄 Microsoft.Office.Interop.Excel.Workbook excelBook = excel.Workbooks.Add(true); Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets[1]; //excel.Application.Workbooks.Add(true); //生成字段名称 int k = 0; for (int i = 0; i < dgv.ColumnCount; i++) { if (dgv.Columns[i].Visible) //不导出隐藏的列 { excel.Cells[1, k + 1] = dgv.Columns[i].HeaderText; k++; } } //填充数据 for (int i = 0; i < dgv.RowCount; i++) { k = 0; for (int j = 0; j < dgv.ColumnCount; j++) { if (dgv.Columns[j].Visible) //不导出隐藏的列 { if (dgv[j, i].ValueType == typeof(string)) { excel.Cells[i + 2, k + 1] = "" + dgv[j, i].Value.ToString(); } else { excel.Cells[i + 2, k + 1] = dgv[j, i].Value.ToString(); } } k++; } } try { excelBook.Saved = true; excelBook.SaveCopyAs(fileName); MessageBox.Show("导出成功!"); } catch { MessageBox.Show("导出失败,文件可能正在使用中", "提示"); } } } } } } private void btnExcel_Click(object sender, EventArgs e)//调用 { string name = ""; Excel ex = new Excel(); ex.RExcel(name,dataGridView1); }
相关文章推荐
- Linux 进程/端口监控 自动重启
- Android的一些基本常识
- 360搜索引擎
- PHP电商购物车(一:建立数据表)
- List of Peppa Pig episodes
- asp.net core 之静态文件目录的操作
- 读书笔记-java网络编程-5URL和URI-简述
- sql Server 将金额转换成分、角、元、十……
- support-v7-appcompat问题
- Ubuntu14.04安装搜狗输入法的一点小问题
- C#中的Sealed和J#中的Final比较(转载)
- windows向ubuntu过渡之常用编程软件安装
- FDO介绍
- POJ 3169 Layout ---差分约束 + 最短路 + 含负边处理
- 双GPU-c++MATLAB混合编程
- ubuntu16上安装ROS Kinetic
- java原子操作类-原子数组类
- Project第三天 实现百度定位后计算距离和进行排序
- C# 对象的使用
- 增强 nginx 的 SSL 安全性