C#winform导出数据到Excel的类
/// <summary>
/// 构造函数
/// </summary>
public ExportData()
{ }
/// <summary>
/// 保存文件名
/// </summary>
private string savefilename = "";
/// <summary>
/// 准备导出的数据容器
/// </summary>
private System.Windows.Forms.DataGridView datagv;
/// <summary>
/// 导出excel文档
/// </summary>
/// <param name="d">数据所在控件</param>
public void OutDataToExcelByDataSource(System.Windows.Forms.DataGridView dgview)
{
try
{
if (dgview.Columns.Count < )
{
MessageBox.Show("没有导出数据。");
return;
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.ValidateNames = true;
sfd.Filter = "Excel2003文件(*.xls)|*.xls|Excel2007文件(*.xlsx)|*.xlsx|Access文件(*.mdb)|*.mdb|DBF文件(*.dbf)|*.dbf";
if (sfd.ShowDialog() != DialogResult.OK)
{
return;
}
this.savefilename = sfd.FileName;
//检测文件名是否合法
string tryfile = "";
tryfile = savefilename.Substring(savefilename.LastIndexOf("\\") + );
tryfile = tryfile.Substring(, tryfile.LastIndexOf("."));
foreach (char c in tryfile)
{
if ("<>?:[]|*".Contains(c.ToString()))
{
MessageBox.Show("文件名包含非法字符.");
return;
}
}
this.datagv = dgview;
if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")) == ".xlsx" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")) == ".xls")
{
outToExcelByDataSource();
}
else if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")) == ".mdb" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")) == ".dbf")
{
outToAccessByDataSource();
}
}
catch (Exception W)
{
MessageBox.Show(W.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 导出excel文档
/// </summary>
/// <param name="d">数据所在控件</param>
public void OutDataToExcelByDataTable(System.Windows.Forms.DataGridView dgview)
{
try
{
if (dgview.Columns.Count < )
{
MessageBox.Show("没有导出数据。");
return;
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.ValidateNames = true;
sfd.Filter = "Excel2003文件(*.xls)|*.xls|Excel2007文件(*.xlsx)|*.xlsx|Access文件(*.mdb)|*.mdb|DBF文件(*.dbf)|*.dbf"; ;
if (sfd.ShowDialog() != DialogResult.OK)
{
return;
}
this.savefilename = sfd.FileName;
//检测文件名是否合法
string tryfile = "";
tryfile = savefilename.Substring(savefilename.LastIndexOf("\\") + );
tryfile = tryfile.Substring(, tryfile.LastIndexOf("."));
foreach (char c in tryfile)
{
if ("<>?:[]|*".Contains(c.ToString()))
{
MessageBox.Show("文件名包含非法字符.");
return;
}
}
this.datagv = dgview;
if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".xlsx" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".xls")
{
outToExcelByDataTable();
}
else if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".mdb" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".dbf")
{
outToAccessByDataTable();
}
}
catch (Exception W)
{
MessageBox.Show(W.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 导出文档
/// </summary>
public void OutDataByDataTable(DataTable tab)
{
try
{
if (tab.Columns.Count < )
{
MessageBox.Show("没有导出数据。");
return;
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.ValidateNames = true;
sfd.Filter = "Excel2003文件(*.xls)|*.xls|Excel2007文件(*.xlsx)|*.xlsx|Access文件(*.mdb)|*.mdb|DBF文件(*.dbf)|*.dbf";
if (sfd.ShowDialog() != DialogResult.OK)
{
return;
}
this.savefilename = sfd.FileName;
//检测文件名是否合法
string tryfile = "";
tryfile = savefilename.Substring(savefilename.LastIndexOf("\\") + );
tryfile = tryfile.Substring(, tryfile.LastIndexOf("."));
foreach (char c in tryfile)
{
if ("<>?:[]|*".Contains(c.ToString()))
{
MessageBox.Show("文件名包含非法字符.");
return;
}
}
if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".xlsx" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".xls")
{
ExportExcelForm of = new ExportExcelForm();
of.mytable = tab;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
else if (sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".mdb" || sfd.FileName.Substring(sfd.FileName.LastIndexOf(".")).ToLower() == ".dbf")
{
ExportAccessForm of = new ExportAccessForm();
of.mytable = tab;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
}
catch (Exception W)
{
MessageBox.Show(W.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 弹出导出窗口
/// </summary>
private void outToExcelByDataSource()
{
ExportExcelForm of = new ExportExcelForm();
of.mytable = (DataTable)this.datagv.DataSource;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
/// <summary>
/// 弹出导出窗口
/// </summary>
private void outToExcelByDataTable()
{
ExportExcelForm of = new ExportExcelForm(); DataTable dt = new DataTable();
for (int i = ; i < this.datagv.ColumnCount; i++)
{
dt.Columns.Add(this.datagv.Columns[i].HeaderText);
}
DataRow dr;
for (int i = ; i < this.datagv.RowCount; i++)
{
dr = dt.NewRow();
for (int j = ; j < this.datagv.ColumnCount; j++)
{
if (this.datagv.Columns[j].HeaderText == "sqlstring")
{
dr[j] = "";
}
else
{
if (this.datagv.Rows[i].Cells[j].Value == null)
{
dr[j] = "";
}
else
{
dr[j] = this.datagv.Rows[i].Cells[j].Value.ToString();
}
}
}
dt.Rows.Add(dr);
}
of.mytable = dt;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
/// <summary>
/// 弹出导出窗口
/// </summary>
private void outToAccessByDataSource()
{
if (this.savefilename.Substring(this.savefilename.LastIndexOf(".")).ToLower() == ".mdb")
{
ExportAccessForm of = new ExportAccessForm();
of.mytable = (DataTable)this.datagv.DataSource;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
else if (this.savefilename.Substring(this.savefilename.LastIndexOf(".")).ToLower() == ".dbf")
{
ExportDBFForm of = new ExportDBFForm();
of.mytable = (DataTable)this.datagv.DataSource;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
}
/// <summary>
/// 弹出导出窗口
/// </summary>
private void outToAccessByDataTable()
{
try
{
if (this.savefilename.Substring(this.savefilename.LastIndexOf(".")).ToLower() == ".mdb")
{
ExportAccessForm of = new ExportAccessForm();
DataTable dt = new DataTable();
for (int i = ; i < this.datagv.ColumnCount; i++)
{
dt.Columns.Add(this.datagv.Columns[i].HeaderText);
}
DataRow dr;
for (int i = ; i < this.datagv.RowCount; i++)
{
dr = dt.NewRow();
for (int j = ; j < this.datagv.ColumnCount; j++)
{
if (this.datagv.Columns[j].HeaderText == "sqlstring")
{
dr[j] = "";
}
else
{
if (this.datagv.Rows[i].Cells[j].Value == null)
{
dr[j] = "";
}
else
{
dr[j] = this.datagv.Rows[i].Cells[j].Value.ToString();
}
}
}
dt.Rows.Add(dr);
}
of.mytable = dt;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
else if (this.savefilename.Substring(this.savefilename.LastIndexOf(".")).ToLower() == ".dbf")
{
ExportDBFForm of = new ExportDBFForm();
DataTable dt = new DataTable();
for (int i = ; i < this.datagv.ColumnCount; i++)
{
dt.Columns.Add(this.datagv.Columns[i].HeaderText);
}
DataRow dr;
for (int i = ; i < this.datagv.RowCount; i++)
{
dr = dt.NewRow();
for (int j = ; j < this.datagv.ColumnCount; j++)
{
if (this.datagv.Columns[j].HeaderText == "sqlstring")
{
dr[j] = "";
}
else
{
if (this.datagv.Rows[i].Cells[j].Value == null)
{
dr[j] = "";
}
else
{
dr[j] = this.datagv.Rows[i].Cells[j].Value.ToString();
}
}
}
dt.Rows.Add(dr);
}
of.mytable = dt;
if (of.mytable == null)
{
MessageBox.Show("没有导出数据。");
return;
}
of.savefimename = this.savefilename;
of.Show();
}
}
catch
{ }
}
C#winform导出数据到Excel的类的更多相关文章
- C#导出数据到Excel通用的方法类
导出数据到Excel通用的方法类,请应对需求自行修改. 资源下载列表 using System.Data; using System.IO; namespace IM.Common.Tools { p ...
- 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...
- 导出数据到Excel --使用ExcelReport有感
先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...
- 使用Open xml 操作Excel系列之二--从data table导出数据到Excel
由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...
- MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult
导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格 ...
- 从数据库导出数据到excel之POI操作
项目说明: 1:数据库中有两张表,主键关联 2:根据条件查询数据 3:处理为需要的数据封装类型,然后传到导出excel的方法中 <--框架部署就不详谈了,用的spring框架--> 补充: ...
- 导出数据到Excel表格
开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,作者:陈鸿鹏撰写时间:2019年5月25日123下面是我们来学习的导出数据到Excel表格的总结首先在视图层写导出数据的点击 ...
- 手把手教你springboot中导出数据到excel中
手把手教你springboot中导出数据到excel中 问题来源: 前一段时间公司的项目有个导出数据的需求,要求能够实现全部导出也可以多选批量导出(虽然不是我负责的,我自己研究了研究),我们的项目是x ...
随机推荐
- sqlldr导入数据
直接在cmd输入sqlldr即可,不需要先输sqlplus. 参考链接:每次提交多少行很重要:http://www.cnblogs.com/wingsless/archive/2012/08/04/2 ...
- Replace JSON.NET with Jil JSON serializer in ASP.NET Web API
I have recently come across a comparison of fast JSON serializers in .NET, which shows that Jil JSON ...
- 01.base-v1.js
/* Date: 2014-01-21 */ function login() { return location.href = "https://passport.jd.com/new/l ...
- SQL Server 2005中的分区表(二):如何添加、查询、修改分区表中的数据(转)
在创建完分区表后,可以向分区表中直接插入数据,而不用去管它这些数据放在哪个物理上的数据表中.接上篇文章,我们在创建好的分区表中插入几条数据 insert Sale ([Name],[SaleTime] ...
- [ActionScript 3.0] Away3D 非skybox的全景例子
package { import away3d.containers.View3D; import away3d.controllers.HoverController; import away3d. ...
- [技巧]如何清除VS2008的最近打开项目
)删除最近打开的文件 运行regedit,打开HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\FileMRUList 之后,在右边删除相应键 ...
- Android Eclipse 里面依赖工程无法关联源码解决方案
android开发中,debug调试是一种非常实用快速定位问题的办法.eclipse中多工程依赖状态下会偶现无法debug的困扰,debug中的代码执行时会报出如下错误 The JAR of thi ...
- linux下udp编程
#include<sys/types.h> #include<sys/socket.h> #include<unistd.h> #include<netine ...
- (转)Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题
原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System ...
- OC基础(18)
Category基本概念 Category注意事项 *:first-child { margin-top: 0 !important; } body > *:last-child { margi ...