最近在项目中,遇到一些需求,就是将数据导出来,以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)的更多相关文章

  1. vs2016 创建 vsto excel 文件项目的一个问题

    新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...

  2. Hive中的三种不同的数据导出方式介绍

    问题导读:1.导出本地文件系统和hdfs文件系统区别是什么?2.带有local命令是指导出本地还是hdfs文件系统?3.hive中,使用的insert与传统数据库insert的区别是什么?4.导出数据 ...

  3. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...

  4. 使用头文件cfloat中的符号常量获知浮点类型数据的表数范围---gyy整理

    使用头文件cfloat中的符号常量获知浮点类型数据的表数范围 cfloat头文件包含了系统的浮点数的长度限制 头文件climits中的符号常量是获知整型数据的表数范围,并不能获取浮点类型数据的表数范围 ...

  5. 为什么在项目中data需要使用return返回数据呢?

    问:为什么在项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件.

  6. C#导出Excel文件Firefox中文件名乱码

    首先说明下:我的解决方法不一定适用于其他遇到该问题的人,因为情况多种多样,适合我的方法不一定适合别人,就像我在遇到问题时查到别人的解决方案放到我的代码里却不管用,所以这个方法仅供参考 这两天做了一个导 ...

  7. (Python)导出指定文件夹中as文件的完全限定类名

    AS3程序在编译的过程中,有一个特点是这样的,不管是项目中的类,还是标准库或者第三方库的类,编译的时候只会把用到的那些类文件编译进去,也就是说,某一些类,只要没有被主程序引用到,那这个文件是不会被编译 ...

  8. 通过正则表达式提取excel特定列中含有关键字的所有行数据

    在 Excel 中打开需要提取数据excel文件,使用 Alt+F11 快捷键打开 VBA 项目窗口,在左侧的工作表名称上点右键,选择查看代码,即可出现右侧的编辑代码窗口(如下图) 在代码窗口中输入以 ...

  9. vue项目中使用mockjs+axios模拟后台数据返回

    自己写练手项目的时候常常会遇到一个问题,没有后台接口,获取数据总是很麻烦,于是在网上找了下,发现一个挺好用的模拟后台接口数据的工具:mockjs.现在把自己在项目中使用的方法贴出来   先看下项目的目 ...

随机推荐

  1. javascript : 对象取值练习

    let obj = { "qqq":0, "www":0, "eee":0, "rrr":1, "ttt&qu ...

  2. 高阶Pandas知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...

  3. ElementUI中 el-table-column 显示的数据为多个返回数据的拼接

    遇到个问题就是其中有个要展示的数据来自接口返回的两个字段. 原用法是: 原以为prop=" "中只能放一个字段的数据,想放两个字段数据的话,要把 <el-table-colu ...

  4. navcat 增删改查

    navcat // sql 语句结尾的地方需要 设置为空 SELECT * FROM users ; UPDATE users SET uname = 'hezhi' WHERE uid = 3 // ...

  5. Spring发布WebService并调用已有的WebService

    发布WebService 1.编写生成WebService的Java类 package com.webService; import com.service.PianoServiceImpl; imp ...

  6. Arch Linux卡在 sddm 登录界面

    问题描述: 刚装完Arch Linux 之后发现能正常打开登录界面,但点击登录之后闪屏了一下又回到登录界面 可能的原因: /home 目录没挂载磁盘 user的权限没有设置好 解决办法: 对于第一种 ...

  7. PHP fgetc() 函数

    定义和用法 fgetc() 函数从打开的文件中返回一个单一的字符. 语法 fgetc(file) 参数 描述 file 必需.规定要检查的文件. 提示和注释 注释:该函数处理大文件非常缓慢,所以它不用 ...

  8. 最优化算法【牛顿法、拟牛顿法、BFGS算法】

    一.牛顿法 对于优化函数\(f(x)\),在\(x_0\)处泰勒展开, \[f(x)=f(x_0)+f^{'}(x_0)(x-x_0)+o(\Delta x) \] 去其线性部分,忽略高阶无穷小,令\ ...

  9. 数据库Schema

    在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念.实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不 ...

  10. RabbitMQ学习总结(3)-集成SpringBoot

    1. pom.xml引用依赖 SpringBoot版本可以自由选择,我使用的是2.1.6.RELEASE,使用starter-web是因为要使用Spring的相关注解,所以要同时加上. <dep ...