C#_DataTable导出Execl为自定义标题
public bool ExportExcel(DataTable tb, string path, string tbName)
{
//excel 2003格式
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0;";
//Excel 2007格式
//string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=Excel 12.0 Xml;";
try
{
using (OleDbConnection con = new OleDbConnection(connString))
{
con.Open();
StringBuilder strSQL = new StringBuilder();
strSQL.Append("CREATE TABLE ").Append("[" + tbName + "]");
strSQL.Append("(");
for (int i = ; i < tb.Columns.Count; i++)
{
switch (tb.Columns[i].ColumnName)
{
case "ID":
tb.Columns[i].ColumnName = "编号";
break;
case "name":
tb.Columns[i].ColumnName = "姓名";
break;
case "phone":
tb.Columns[i].ColumnName = "电话";
break;
case "address":
tb.Columns[i].ColumnName = "地址";
break;
case "scheduleLength":
tb.Columns[i].ColumnName = "预定下单长度";
break;
case "welfare":
tb.Columns[i].ColumnName = "福利的类型";
break;
case "commodityType":
tb.Columns[i].ColumnName = "抢购商品类型";
break;
case "discount":
tb.Columns[i].ColumnName = "折扣";
break;
case "time":
tb.Columns[i].ColumnName = "日期";
break;
case "remarks":
tb.Columns[i].ColumnName = "备注";
break; }
strSQL.Append("[" + tb.Columns[i].ColumnName + "] text,");
}
strSQL = strSQL.Remove(strSQL.Length - , );
strSQL.Append(")"); OleDbCommand cmd = new OleDbCommand(strSQL.ToString(), con);
cmd.ExecuteNonQuery();
string column = string.Empty;
for (int i = ; i < tb.Rows.Count; i++)
{
strSQL.Clear();
StringBuilder strfield = new StringBuilder();
StringBuilder strvalue = new StringBuilder();
for (int j = ; j < tb.Columns.Count; j++)
{
switch (tb.Columns[j].ColumnName)
{
case "ID":
tb.Columns[j].ColumnName = "编号";
break;
case "name":
tb.Columns[j].ColumnName = "姓名";
break;
case "phone":
tb.Columns[j].ColumnName = "电话";
break;
case "address":
tb.Columns[j].ColumnName = "地址";
break;
case "scheduleLength":
tb.Columns[j].ColumnName = "预定下单长度";
break;
case "welfare":
tb.Columns[j].ColumnName = "福利的类型";
break;
case "commodityType":
tb.Columns[j].ColumnName = "抢购商品类型";
break;
case "discount":
tb.Columns[j].ColumnName = "折扣";
break;
case "time":
tb.Columns[j].ColumnName = "日期";
break;
case "remarks":
tb.Columns[j].ColumnName = "备注";
break; }
strfield.Append("[" + tb.Columns[j].ColumnName + "]");
strvalue.Append("'" + tb.Rows[i][j].ToString() + "'");
if (j != tb.Columns.Count - )
{
strfield.Append(",");
strvalue.Append(",");
}
else
{
}
}
cmd.CommandText = strSQL.Append(" insert into [" + tbName + "]( ")
.Append(strfield.ToString())
.Append(") values (").Append(strvalue).Append(")").ToString();
cmd.ExecuteNonQuery();
}
con.Close();
}
return true;
}
catch (Exception ex)
{
return false;
}
}
C#_DataTable导出Execl为自定义标题的更多相关文章
- asp.net中导出Execl的方法
一.asp.net中导出Execl的方法: 在 asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址 输出在浏览器上:一种是将文件直接将文件输出流写给 ...
- js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)
第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...
- C# NPOI 导出Execl 工具类
NPOI 导出Execl 自己单独工具类 详见代码 using System; using System.Collections.Generic; using System.Linq; using S ...
- MVC 导出Execl 的总结几种方式 (二)
接着上面的来,继续导出Execl 的功能 使用FileResult 方式直接可以生产Execl ,这样我们将会写大量处理后台的代码,个人感觉不好,只是展示出来,提供参考 第一步:编辑控制器 publi ...
- NOPI导出execl 多个sheet,一列图片
NPOI API: http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html http://blog.csdn.net/pan_junbi ...
- js导出execl 兼容ie Chrome Firefox各种主流浏览器(js export execl)
第一种导出table布局的表格 1 <html> 2 3 <head> 4 <meta charset="utf-8"> 5 <scrip ...
- Android之自定义标题
我们知道我们创建的每一个Activity,系统默认为我们提供了一下黑色的标题,本篇我将带领大家接触一下如何实现自定义标题样式.相比系统为我们提供的样式,自定义标题可以满足我们唯心所欲的自定义设计,使我 ...
- 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误
当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示. 有两种方法可以解决以上问题: 1.修改we ...
- GridView多行标题行、改造标题行、自定义标题行完美版
网上找了个找,最终还是自己做的比较靠谱,道理很简单,直接看代码 代码: /// <summary> /// =================== 两行标题行 ============ ...
随机推荐
- Friendship
Friendship Time Limit: 2000MS Memory Limit: 20000K Total Submissions: 9824 Accepted: 2720 Descriptio ...
- Convert.ChangeType转换泛型的性能损失测试
经常要传入参数包,当时一直是用泛型+ChangeType解决的.测试了下,看来这样确实慢了. 另外,可能都会认为Release发布之后会被优化掉.但测试了Release和Debug结果一样慢,比较失望 ...
- CyclicBarrier原理
转载:http://www.cnblogs.com/skywang12345/p/3533995.html CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 ( ...
- CurrentHashMap的实现原理
转载:http://wiki.jikexueyuan.com/project/java-collection/concurrenthashmap.html 概述 我们在之前的博文中了解到关于 Hash ...
- response.setContentType()的参数说明
response.setContentType()的参数说明 <meta http-equiv="Content-Type" content="text/html; ...
- Datagrid扩展方法InitEditGrid{支持单元格编辑}
//-----------------------------------------------------------------/******************************** ...
- centOS6.5安装SUN-jdk7
一.下载SUN-JDK1.7.tar.gz文件他 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1 ...
- java使用Cipher进行签名和验签
public static void main(String[] args) { try { String plainText = "duwenlei"; KeyPairGener ...
- Xcode_5
Xcode_5 Objective-C进行IOS7编程 我个人的经验是,如果之前有过编程基础(无论是C.C++还是Java),那么<Objective-C基础教程>(图灵程序设计丛书 ...
- JLINK仿真器与ST-LINK仿真器的安装与配置.pdf
JLINK仿真器与ST-LINK仿真器的安装与配置.pdf 工欲善其事,......stm32的开发环境搭建 观看地址 说到仿真器,首先要了解一下JTAG. JTAG协议 JTAG(Joint Te ...