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 ...
随机推荐
- 查看linux的版本
1. uname -a ~$ uname -a Linux lubuntu-Vostro-A840 3.19.0-73-generic #81-Ubuntu SMP Tue Oct 18 16:02: ...
- IOS中类似的。9.png图片
图形用户界面中的图形有两种实现方式,一种是用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片. 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空 ...
- VS打包资源文件,转自推酷,请小星同学查看
上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...
- java中的==和!=
java中一般很少用到==和!=,除了用于和null比较,如: if(null==o){ } //或者 if(null!=o){ } 其他地方比较一律用equals(); 建议:写完代码后在整个项目中 ...
- 学习Webservice之入天气小试
主要方法是:通过程序中设置代理用公司内网访问外部Webservice public InputStream getSoapInputStream(String url) { InputStream i ...
- EL表达式结合页面JSTL使用 迭代显示表格
1.迭代显示表格 <%@ page isELIgnored="false"%><%@ taglib uri="/WEB-INF/struts-bean. ...
- jQuery与Ajax
Ajax简介 : Asynchronous Javascript And XML (异步的JavaScript和XML) AJAX 不是新的编程语言,而是一种使用现有标准创建快速动态网页的技术. 通过 ...
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18311877) 今天还是给大家带来自定义控件的编写,自定义一个Lis ...
- 【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射
[Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水 ...
- Epic - Desirable Number
A number is called 'desirable' if all thedigits are strictly ascending eg: 159 as 1<5<9. You k ...