导出Excel文件(项目中会遇到很多将一些数据导出Excel或者et)
最近在项目中,遇到一些需求,就是将数据导出来,以Excel文件为主:就自己简单的做一些demo:供初学者来学习:
// 定义一个保存文件的路径位置
SaveFileDialog dlgPath = new SaveFileDialog();
string sPath = string.Empty;
// 需要保存的格式
dlgPath.Filter = "Excel文件(*.xls)|*.xls"; // 对Excel相应的操作定义变量
ApplicationClass app = new ApplicationClass();
Microsoft.Office.Interop.Excel._Workbook _workBook = null; try
{
// 弹出要保存文件的位置(可选择也可以默认路径)
if (dlgPath.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
sPath = dlgPath.FileName;
}
else
{
return;
} Workbooks workBooks = app.Workbooks;
_workBook = workBooks.Add(true); Sheets sheets = _workBook.Sheets; Worksheet sheet = (Worksheet)sheets[]; //判断表头是为空
if (!string.IsNullOrEmpty(dt.TableName))
{
sheet.Name = dt.TableName;
} char sExcelColn = 'A';
char sExcelColnEx = 'A';
for (int i = ; i < dt.Columns.Count; i++)
{
// 设置Excel某列单元格的文本格式,从第二行开始
for (int index = ; index < dt.Rows.Count+; index++)
{
if (i > )
{
Range objRange = sheet.get_Range("A" + sExcelColnEx + index.ToString(), Type.Missing);
if (null!=objRange)
{
objRange.NumberFormatLocal = "@";
}
else {
break;
}
}
else
{
Range objRange = sheet.get_Range("A" + sExcelColn + index.ToString(), Type.Missing);
if (null != objRange)
{
objRange.NumberFormatLocal = "@";
}
}
}
if (i<=)
{
sExcelColn++;
}else
{
sExcelColnEx++;
}
}
int x = , y = ;
foreach (DataColumn cloumn in dt.Columns)
{
// 如果Caption不为空表头输出使用Caption,否则使用ColumnName
if (string.IsNullOrEmpty(cloumn.Caption.ToString()))
{
sheet.Cells[x, y++] = cloumn.ColumnName.ToString();
}
else
{ sheet.Cells[x, y++] = cloumn.Caption.ToString();
}
}
x++;
y = ; foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
sheet.Cells[x,y++] = row[column.ColumnName].ToString();
}
x++;
y = ;
}
_workBook.SaveAs(sPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing); }
catch (Exception ex)
{ throw ex;
}
finally
{
if (_workBook!=null)
{
_workBook.Close(Type.Missing, Type.Missing, Type.Missing);
}
if (app!=null)
{
app.Quit();
}
}
上面的代码是将数据转换成Excel的过程:
我们在做一组假数据,看看效果:
// 表格数据
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("name");
dt.Columns.Add("age");
dt.Columns.Add("sex");
dt.Columns.Add("weight");
dt.Columns.Add("height");
dt.Columns.Add("adress");
dt.Columns.Add("phone");
dt.Columns.Add("workAdress"); DataRow dr = dt.NewRow();
dr["name"] = "万三窦";
dr["age"] = "";
dr["sex"] = "男";
dr["weight"] = "68kg";
dr["height"] = "167cm";
dr["adress"] = "丰台区大井";
dr["phone"] = "";
dr["workAdress"] = "金堂国际大厦配楼301";
dt.Rows.Add(dr);
我上面是用WindowForm做的demo:只需在界面加个按钮调用下,就可以,我们来看下效果
若有不正确的地方,请大家多多指教!
导出Excel文件(项目中会遇到很多将一些数据导出Excel或者et)的更多相关文章
- vs2016 创建 vsto excel 文件项目的一个问题
新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...
- Hive中的三种不同的数据导出方式介绍
问题导读:1.导出本地文件系统和hdfs文件系统区别是什么?2.带有local命令是指导出本地还是hdfs文件系统?3.hive中,使用的insert与传统数据库insert的区别是什么?4.导出数据 ...
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...
- 使用头文件cfloat中的符号常量获知浮点类型数据的表数范围---gyy整理
使用头文件cfloat中的符号常量获知浮点类型数据的表数范围 cfloat头文件包含了系统的浮点数的长度限制 头文件climits中的符号常量是获知整型数据的表数范围,并不能获取浮点类型数据的表数范围 ...
- 为什么在项目中data需要使用return返回数据呢?
问:为什么在项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件.
- C#导出Excel文件Firefox中文件名乱码
首先说明下:我的解决方法不一定适用于其他遇到该问题的人,因为情况多种多样,适合我的方法不一定适合别人,就像我在遇到问题时查到别人的解决方案放到我的代码里却不管用,所以这个方法仅供参考 这两天做了一个导 ...
- (Python)导出指定文件夹中as文件的完全限定类名
AS3程序在编译的过程中,有一个特点是这样的,不管是项目中的类,还是标准库或者第三方库的类,编译的时候只会把用到的那些类文件编译进去,也就是说,某一些类,只要没有被主程序引用到,那这个文件是不会被编译 ...
- 通过正则表达式提取excel特定列中含有关键字的所有行数据
在 Excel 中打开需要提取数据excel文件,使用 Alt+F11 快捷键打开 VBA 项目窗口,在左侧的工作表名称上点右键,选择查看代码,即可出现右侧的编辑代码窗口(如下图) 在代码窗口中输入以 ...
- vue项目中使用mockjs+axios模拟后台数据返回
自己写练手项目的时候常常会遇到一个问题,没有后台接口,获取数据总是很麻烦,于是在网上找了下,发现一个挺好用的模拟后台接口数据的工具:mockjs.现在把自己在项目中使用的方法贴出来 先看下项目的目 ...
随机推荐
- swagger -- 前后端分离的API接口
文章目录 一.背景 二.swagger介绍 三.在maven+springboot项目中使用swagger 四.swagger在项目中的好处 五.美化界面 参考链接:5分钟学会swagger配置 参考 ...
- DJANGO-天天生鲜项目从0到1-014-订单-订单评论
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- Spring bean初始化
- Flutter + Android 混合开发
JIT (Just In Time) 即时编译器, 边执行边编译 程序运行时,JIT 编译器选择将最频繁执行的方法编译成本地代码.运行时才进行本地代码编译而不是在程序运行前进行编译 AOT可以理解为“ ...
- C#中使用ajax请求
ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式.快速动态网页应用的网页开发技术,无需重新加载 ...
- JDK动态代理和 CGLIB 代理
JDK动态代理和 CGLIB 代理 JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期期间创建一个接口的实现类来完成对目标对象的代理. 代码示例 接口 public interface ...
- 《数据可视化之美》高清PDF全彩版|百度网盘免费下载|Python数据可视化
<数据可视化之美>高清PDF全彩版|百度网盘免费下载|Python数据可视化 提取码:i0il 内容简介 <数据可视化之美>内容简介:可视化是数据描述的图形表示,旨在一目了然地 ...
- LIMS产品 - Starlims解决方案
pharmaceutical-biotech 制药和生物技术 general-manufacturing 制药业 contract-services 第三方 molecular-testing 分子测 ...
- 学习JavaScript数据结构与算法 2/15
第一章 JavaScript简介 js不同于C/C++,C#,JAVA,不是强类型语言. 通常,代码质量可以用全局变量和函数的数量来考量(数量越多越糟).因此,尽可能避免使用全局变量. JS数据类型 ...
- Python大礼包-安装视频+pycharm编译器|Mac版本+64位+32位版本pycharm安装包+python安装|内附网盘链接带提取码
pycharm安装包+环境安装打包带走,附带视频教程与pdf教程. (下载链接在本文最下方) 多的不说,直接上图: Python大礼包-安装视频+pycharm编译器详细文件: 点击此处进入下载地址 ...