- 浏览: 77685 次
- 性别:
- 来自: 长沙
最新评论
-
zcy860511:
这个和jquery有啥关系?
基于jQuery,实现JS面向对象编程 -
hansem:
could you please attach for fil ...
jQuery easyUI ASP.NET基本应该 -
wang_youp:
好帅气的用法啊,没用过!
基于jQuery,实现JS面向对象编程 -
danny.chiu:
jQuery对对象的实现有些太粗糙了,extend方法貌似可以 ...
jQuery面向对象
DataGridView导出数据到Excel中,可以导出当前页和全部数据:
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 1 #region SaveDataGireViewtoExcel
2 public bool SaveDataGireViewtoExcel()
3 {
4 try
5 {
6 //实例化一个Excel.Application对象
7 Excel.Application excel =
8 new Excel.Application();
9
10 //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
11 excel.Visible = false;
12
13 //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错
14 excel.Application.Workbooks.Add(true);
15 //生成Excel中列头名称
16 for (int i = 0; i < dataGridView_files.Columns.Count; i++)
17 {
18 excel.Cells[1, i + 1] = dataGridView_files.Columns[i].HeaderText;
19 }
20 //把DataGridView当前页的数据保存在Excel中
21 for (int i = 0; i < dataGridView_files.Rows.Count - 1; i++)
22 {
23 for (int j = 0; j < dataGridView_files.Columns.Count; j++)
24 {
25 if (dataGridView_files[j, i].ValueType == typeof(string))
26 {
27 excel.Cells[i + 2, j + 1] = "'" + dataGridView_files[j, i].Value.ToString();
28 }
29 else
30 {
31 excel.Cells[i + 2, j + 1] = dataGridView_files[j, i].Value.ToString();
32 }
33 }
34 }
35
36 //设置禁止弹出保存和覆盖的询问提示框
37 excel.DisplayAlerts = false;
38 excel.AlertBeforeOverwriting = false;
39
40 //保存工作簿
41 excel.Application.Workbooks.Add(true).Save();
42 //保存excel文件
43 excel.Save(@System.Windows.Forms.Application.StartupPath+"\\aaa.xls");
44
45 //确保Excel进程关闭
46 excel.Quit();
47 excel = null;
48 GC.Collect();
49
50 return true;
51 }
52 catch (Exception ex)
53 {
54 MessageBox.Show(ex.Message, "错误提示");
55 }
56
57 return false;
58 }
59 #endregion
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 1 #region SaveDataGireViewtoExcel
2 public bool SaveDataGireViewtoExcel()
3 {
4 try
5 {
6 //实例化一个Excel.Application对象
7 Excel.Application excel =
8 new Excel.Application();
9
10 //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
11 excel.Visible = false;
12
13 //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错
14 excel.Application.Workbooks.Add(true);
15 //生成Excel中列头名称
16 for (int i = 0; i < dataGridView_files.Columns.Count; i++)
17 {
18 excel.Cells[1, i + 1] = dataGridView_files.Columns[i].HeaderText;
19 }
20 //把DataGridView当前页的数据保存在Excel中
21 for (int i = 0; i < dataGridView_files.Rows.Count - 1; i++)
22 {
23 for (int j = 0; j < dataGridView_files.Columns.Count; j++)
24 {
25 if (dataGridView_files[j, i].ValueType == typeof(string))
26 {
27 excel.Cells[i + 2, j + 1] = "'" + dataGridView_files[j, i].Value.ToString();
28 }
29 else
30 {
31 excel.Cells[i + 2, j + 1] = dataGridView_files[j, i].Value.ToString();
32 }
33 }
34 }
35
36 //设置禁止弹出保存和覆盖的询问提示框
37 excel.DisplayAlerts = false;
38 excel.AlertBeforeOverwriting = false;
39
40 //保存工作簿
41 excel.Application.Workbooks.Add(true).Save();
42 //保存excel文件
43 excel.Save(@System.Windows.Forms.Application.StartupPath+"\\aaa.xls");
44
45 //确保Excel进程关闭
46 excel.Quit();
47 excel = null;
48 GC.Collect();
49
50 return true;
51 }
52 catch (Exception ex)
53 {
54 MessageBox.Show(ex.Message, "错误提示");
55 }
56
57 return false;
58 }
59 #endregion
从Excel导入到DataGridView:
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 1 #region button_import_Click
2 private void button_import_Click(object sender, EventArgs e)
3 {
4 //打开一个文件选择框
5 OpenFileDialog ofd = new OpenFileDialog();
6 ofd.Title = "Excel文件";
7 ofd.FileName = "";
8 ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
9 ofd.Filter = "Excel文件(*.xls)|*.xls";
10 ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
11 ofd.CheckFileExists = true; //验证路径有效性
12 ofd.CheckPathExists = true; //验证文件有效性
13
14
15 string strName = string.Empty;
16 if (ofd.ShowDialog() == DialogResult.OK)
17 {
18 strName = ofd.FileName;
19 }
20
21 if (strName == "")
22 {
23 MessageBox.Show("没有选择Excel文件!无法进行数据导入");
24 return;
25 }
26 //调用导入数据方法
27 EcxelToDataGridView(strName, this.dataGridView_files);
28
29 }
30 #endregion
31
32 #region ExcelToDataGridView
33 public void EcxelToDataGridView(string filePath, DataGridView dgv)
34 {
35 //根据路径打开一个Excel文件并将数据填充到DataSet中
36 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "
37 + filePath + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
38 OleDbConnection conn = new OleDbConnection(strConn);
39 conn.Open();
40 string strExcel = "";
41 OleDbDataAdapter myCommand = null;
42 DataSet ds = null;
43 strExcel = "select * from [sheet1$]";
44 myCommand = new OleDbDataAdapter(strExcel, strConn);
45 ds = new DataSet();
46 myCommand.Fill(ds, "table1");
47
48 //根据DataGridView的列构造一个新的DataTable
49 DataTable tb = new DataTable();
50 foreach (DataGridViewColumn dgvc in dgv.Columns)
51 {
52 if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))
53 {
54 DataColumn dc = new DataColumn();
55 dc.ColumnName = dgvc.DataPropertyName;
56 //dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable
57 tb.Columns.Add(dc);
58 }
59 }
60
61 //根据Excel的行逐一对上面构造的DataTable的列进行赋值
62 foreach (DataRow excelRow in ds.Tables[0].Rows)
63 {
64 int i = 0;
65 DataRow dr = tb.NewRow();
66 foreach (DataColumn dc in tb.Columns)
67 {
68 dr[dc] = excelRow[i];
69 i++;
70 }
71 tb.Rows.Add(dr);
72 }
73 //在DataGridView中显示导入的数据
74 dgv.DataSource = tb;
75 }
76 #endregion
77
78
79 #region button_export_Click
80 private void button_export_Click(object sender, EventArgs e)
81 {
82 if (null != this.dataGridView_files.CurrentCell)
83 {
84 if (SaveDataGireViewtoExcel())
85 {
86 MessageBox.Show("导出成功");
87 }
88 else
89 MessageBox.Show("导出失败");
90 }
91 else
92 MessageBox.Show("没有数据需要导出!");
93
94 }
95 #endregion
96
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 1 #region button_import_Click
2 private void button_import_Click(object sender, EventArgs e)
3 {
4 //打开一个文件选择框
5 OpenFileDialog ofd = new OpenFileDialog();
6 ofd.Title = "Excel文件";
7 ofd.FileName = "";
8 ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
9 ofd.Filter = "Excel文件(*.xls)|*.xls";
10 ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
11 ofd.CheckFileExists = true; //验证路径有效性
12 ofd.CheckPathExists = true; //验证文件有效性
13
14
15 string strName = string.Empty;
16 if (ofd.ShowDialog() == DialogResult.OK)
17 {
18 strName = ofd.FileName;
19 }
20
21 if (strName == "")
22 {
23 MessageBox.Show("没有选择Excel文件!无法进行数据导入");
24 return;
25 }
26 //调用导入数据方法
27 EcxelToDataGridView(strName, this.dataGridView_files);
28
29 }
30 #endregion
31
32 #region ExcelToDataGridView
33 public void EcxelToDataGridView(string filePath, DataGridView dgv)
34 {
35 //根据路径打开一个Excel文件并将数据填充到DataSet中
36 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "
37 + filePath + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
38 OleDbConnection conn = new OleDbConnection(strConn);
39 conn.Open();
40 string strExcel = "";
41 OleDbDataAdapter myCommand = null;
42 DataSet ds = null;
43 strExcel = "select * from [sheet1$]";
44 myCommand = new OleDbDataAdapter(strExcel, strConn);
45 ds = new DataSet();
46 myCommand.Fill(ds, "table1");
47
48 //根据DataGridView的列构造一个新的DataTable
49 DataTable tb = new DataTable();
50 foreach (DataGridViewColumn dgvc in dgv.Columns)
51 {
52 if (dgvc.Visible && dgvc.CellType != typeof(DataGridViewCheckBoxCell))
53 {
54 DataColumn dc = new DataColumn();
55 dc.ColumnName = dgvc.DataPropertyName;
56 //dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable
57 tb.Columns.Add(dc);
58 }
59 }
60
61 //根据Excel的行逐一对上面构造的DataTable的列进行赋值
62 foreach (DataRow excelRow in ds.Tables[0].Rows)
63 {
64 int i = 0;
65 DataRow dr = tb.NewRow();
66 foreach (DataColumn dc in tb.Columns)
67 {
68 dr[dc] = excelRow[i];
69 i++;
70 }
71 tb.Rows.Add(dr);
72 }
73 //在DataGridView中显示导入的数据
74 dgv.DataSource = tb;
75 }
76 #endregion
77
78
79 #region button_export_Click
80 private void button_export_Click(object sender, EventArgs e)
81 {
82 if (null != this.dataGridView_files.CurrentCell)
83 {
84 if (SaveDataGireViewtoExcel())
85 {
86 MessageBox.Show("导出成功");
87 }
88 else
89 MessageBox.Show("导出失败");
90 }
91 else
92 MessageBox.Show("没有数据需要导出!");
93
94 }
95 #endregion
96
Q1:Excel中有列头,如果需要导入,可把HDR设置为NO,否则,设置为NO
Q2:当把数据导入到Excel时,怎么把“EXCEL.exe”关闭?
发表评论
-
ASP.NET三层架构详解
2010-12-03 09:07 1345一、数据库 /*====================== ... -
C# ToString() 使用
2010-11-17 22:19 912字符型转换为字符串 // ... -
提高网站访问速度可做哪些优化
2010-11-07 19:53 986提高网站访问速度可做哪些优化 一、 服务器优化 l ... -
递归实现加法
2010-08-27 20:35 1062public class SumPlus { ... -
TableLayoutPanel使用
2010-05-19 09:45 2637/// <summary> ... -
Excel
2010-05-18 12:20 1148private void btnCellWri ... -
线程基本使用
2010-05-15 16:47 766class Program { s ... -
ASP.NET页面刷新方法大集合
2010-05-15 08:02 1018先看看ASP.NET页面刷新的实现方法: 第一: C# ... -
如何获得本月的第一天和最后一天的日期
2010-05-13 16:27 948第一天:System.DateTime.Now.ToStrin ... -
根据年份和月份获得天数
2010-05-11 09:48 1072/// <summary> ... -
Linq模糊查询
2010-05-03 10:35 2712// Linq模糊查询//n.Name.StartsWith( ... -
表格样式
2010-05-01 23:57 757<style type="text/css&q ... -
Javascript刷新页面的几种方法
2010-01-14 15:00 738Javascript刷新页面的几种方法:1 histor ... -
设置或者得到CheckBoxList选中了的值
2010-01-14 09:37 71591.收集时,将CheckBoxList里选中的项转换成字符串, ... -
LINQ to SQL语句之Insert/Update/Delete操作
2009-12-31 16:34 1469Insert/Update/Delete操作 插入(Inse ... -
vs 2005封装字段快捷键
2009-11-11 23:27 1317ctrl + R,E -
Asp.Net 文件操作基类(读取,删除,批量拷贝,批量删)
2009-11-05 14:06 1007using System;using System.IO;us ... -
ASP.NET基本总结
2009-10-18 10:43 1072.NET平台 ----包括了 推荐的语言C#(语法) ... -
中国身份证号码验证
2009-09-23 11:39 870using System; /// <summary& ... -
asp.net 提高性能的实用技巧
2009-08-31 17:06 874提高性能的实用技巧1 1.不要使用不必要的Session,和A ...
相关推荐
在使用该程序时,必须要添加数据库连接,并且编写Sql查询语句才能正确执行代码! 本程序重要是实现winform导入和导出的功能!
本文实例为大家分享了Winform实现导入导出Excel文件的具体代码,供大家参考,具体内容如下 /// /// 导出Excel文件 /// /// /// <param name=dataSet></param> /// 数据集 /// 导出后是否打开文件 /// ...
winform中datagridview导入导出数据 包含txt excel。小弟初学,不喜勿喷!
winform中数据导入导出excel,里面包含源代码
winform实现excel导入数据并导出
特别声明:本程序只给出了导入的实例,导出的实例只给出了方法,使用的时候,按照导入调用的方式直接调用即可。 1、学会使用Microsoft.Office.Interop.Excel读取Excel,避免了使用OleDb获取Excel工作表异常问题; 2...
C#中,winform中dataGridView导入EXCLE数据,或从dataGridView中导出Excel表格。可以指定导入路径或导出路径。
WinForm中将Excl数据和datagridview控件中数据进行导入导出
主要是对Access的操作 实现功能: 1.把Excel数据导入Access, 2.根据条件查询数据库中数据并显示 3.导出数据库中数据
一个简单例子,将datagridview中的数据导出到Excel中
C# WINFORM excel数据导入
C#winform实现Excel导入数据库,winform导出excel数据,C#源码.zip
关于C# winform从EXCEL导入到SQL库的导入,导出可以按导入进行修改下。
C#,Winform,DatagridView,最详尽的导入导出数据到Excel。
NET中Winform的功能到如到处的记录个信息读取数据和存储数据更加便捷
文件/文件夹说明: TeeChart for .NET导入导出功能_慧都控件网.mp4:官方视频 tee文件夹:官方tee文件和笔者的tee文件 TeeChart导出tee数据文件(支持导入).rar:C# WinForm导出/导入tee数据文件例子
仿SQL SERVER 导入导出功能,可以操作 SQL SERVER ,oracle,ACCESS 数据库,对数据表进行相关的操作
最近几天公司要总是传数据,原来直接用SQL 语句传来传去的,当在两个不同版本的数据库之间传...SQL,C#,数据导入,导出, 是Winfrom的程序,只可以操作SQLServe朋友们可以添加其它数据库的选择,基本差不多 QQ:979170768
C# winform,打开CAD文件,导出CAD到Word 导入Excel文件,将数据显示在表格中 导出数据到word文件中 direct3d图形显示
通过NOIP把数据从数据库中导出为Excel,同样也可以把Excel中的数据导入到数据库中(支持Oracle与Sql Server)