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 ...
随机推荐
- Citrix 服务器虚拟化之二十一 桌面虚拟化之部署Provisioning Services
Citrix 服务器虚拟化之二十一 桌面虚拟化之部署Provisioning Services Provisioning Services 是Citrix 出品的一系列虚拟化产品中最核心的一个组件, ...
- [Flex] ButtonBar系列——flex3 labelFunction用户提供的函数,在每个项目上运行以确定其标签
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...
- 常用命令之ps
ps : process status ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的:如果想对进程时间监控,应该用 top 工具. kill 命令用于杀死进程. linux上 ...
- Angularjs过滤器的开发.
先上代码. <!DOCTYPE html> <html ng-app="FilterModule"> <head lang="en" ...
- oracle 内存结构 share pool sql解析的过程
1.sql解析的过程 oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value).根据计算出的hash值到library cache中找到对应 ...
- Arch Linux 修改主机名称
Hostname Set the hostname to your liking (e.g. arch): # echo myhostname > /etc/hostname Add the s ...
- RDD中cache和persist的区别
通过观察RDD.scala源代码即可知道cache和persist的区别: def persist(newLevel: StorageLevel): this.type = { if (storage ...
- 解决eclipse中出现Resource is out of sync with the file system问题
解决eclipse中出现Resource is out of sync with the file system问题 . 分类: 嵌入式开发平台和环境相关 2011-12-27 16:18 4872人 ...
- 如何搭建maya plugin develop environment on MAC OS X
1.首先我使用的平台是xcode version 5.1.1 ,MAYA2015, MAX OS X 10.9.4. MAYA2015要求的是:Mountain Lion 10.8.5, Xcode ...
- Battery-historian 参数说明
部分参数说明 battery_level 电量,可以看出电量的变化.比如上图中的数据显示刚开始电量是100%,然后在第11秒-12秒中间的某个时刻降到了99%. plugged 充电状态,这一栏显示是 ...