最近在项目中,遇到一些需求,就是将数据导出来,以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:只需在界面加个按钮调用下,就可以,我们来看下效果

若有不正确的地方,请大家多多指教!

最新文章

  1. jQuery简单实现iframe的高度根据页面内容自适应的方法(转)
  2. github 和 github for windows 学习使用总结
  3. 怎么解决ZBrush保存历史记录太多问题
  4. ajx技术解析以及模拟jQuery封装
  5. struts2拦截器与过滤器
  6. Kakfa揭秘 Day6 Consumer源码解密
  7. 查找mysql数据库文件的存放位置
  8. 使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
  9. 转]python 结巴分词(jieba)学习
  10. Flex4 布局 元素index
  11. EasyUi基础学习(一)&mdash;基本组件(上)
  12. shell中关于sort的-o选项
  13. 5个最好的TensorFlow网络课程
  14. DeBug Python代码全靠print函数?换用这个一天2K+Star的工具吧,改进版
  15. jenkins 构建selenium python (浏览器驱动是chromedriver)的解决方法
  16. 【Https】Spring RestTemplete支持Https安全请求
  17. 17.1拓展之纯 CSS 创作炫酷的同心圆旋转动画
  18. svn:ignore 的用处
  19. Linux:更改hostname主机名
  20. Mysql数据操作《二》单表查询

热门文章

  1. layui 数据表格自带的导出Excel,身份证等E+/000问题解决
  2. 深入探究JVM之内存结构及字符串常量池
  3. grpc 之 word2pdf使用
  4. Spark 3.0 新特性 之 自适应查询与分区动态裁剪
  5. CSRF与XSS攻击的原理与防范
  6. Android给ListView添加侧滑菜单功能
  7. 萌新学渗透系列之Hack The Box_Legacy
  8. numpy的random方法和常用数据类型
  9. Flask+微信公众号开发(接入指南)
  10. JVM详解之:HotSpot VM中的Intrinsic methods