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 = 0; 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 - 1, 1);
                    strSQL.Append(")");

                    OleDbCommand cmd = new OleDbCommand(strSQL.ToString(), con);
                    cmd.ExecuteNonQuery();
                    string column = string.Empty;
                    for (int i = 0; i < tb.Rows.Count; i++)
                    {
                        strSQL.Clear();
                        StringBuilder strfield = new StringBuilder();
                        StringBuilder strvalue = new StringBuilder();
                        for (int j = 0; 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 - 1)
                            {
                                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;
            }
        }
时间: 2024-10-16 04:55:35

C#中DataTable导出Execl为自定义标题的相关文章

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 = &qu

在MySQL query browser中要导出execl表单

导出:  在MySQL query browser中要导出execl表单,只需要点击file,选择export execl就可以了(要先进入表单哦!). 导入: 数据库的数据太多一下导入有点麻烦,如何将excel的数据直接导入数据库呢? 第一步 另存为txt文档,名字最好为数据库的table名.  在这我们要保存问文本文件用制表符分割的那个,这样我们的数据就不会乱. 第二步 打开txt文档,点击另存为,修改编码,解决中文utf8.  这个时候的文件名必须和你要导入的table名称一样,否则在lo

C#将DataTable导出Execl、Word、Xml

    /// <summary>     /// 将DT转换为Execl的方法     /// </summary>     /// <param name="dt">需要导出的DT     /// <param name="page">页面     /// <param name="fileName">文件名     public void ToExecl(DataTable dt,

C#中datatable导出excel(三种方法)

方法一:(拷贝直接可以使用,适合大批量资料, 上万笔)Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Office.Interop.Excel.Application();SaveFileDialog savefiledialog = new SaveFileDialog();System.Reflection.Missing miss = System.Reflection.Missing.Value;ap

Npoi导入导出Execl

读取csv格式时内容含有逗号的无法处理 using System; using System.Data; using System.IO; using System.Web; using NPOI; using NPOI.HPSF; using NPOI.HSSF; using NPOI.HSSF.UserModel; using NPOI.POIFS; using NPOI.Util; using System.Text; using NPOI.SS.UserModel; using NPOI

asp.net中导出Execl的方法

一.asp.net中导出Execl的方法: 在 asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址 输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,\t分隔的数据,导出 execl时,等价于分列,\n等价于换行. 1.将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中.   Response.Clear();       Response.Buffer=  

Asp.net中利用NPOI组件快速导入导出Execl数据

相信很多童鞋都开发过Execl的导入导出功能,最近产品中无论是后台数据分析的需要,还是前端满足用户管理的方便,都有Execl导入导出的维护需求产生. 以前做这个功能,如果是web,利用HttpContext.Current.Response.ContentType ="application/ms-excel";就可以导出html数据表格到execl中,这种方法的问题就是编码格式的兼容性太差,用Mac OS之类的 office打开直接乱码给你看.或者是调用office的COM组件,或宏

DataTable 导出 excel , 可以自定义列名,没有繁琐的引用

/// <summary> /// 由DataTable导出Excel /// </summary> /// <param name="p"></param> /// <param name="dt"></param> /// <param name="fileName"></param> /// <param name="b"

Web页中table导出到execl(带模板)

1.将excel另存为html,将其复制到aspx文件中 2.输出格式为excel InitData(); Response.Clear(); Response.Buffer = true; Response.Charset = "GB2312"; Response.AddHeader("Content-Disposition", "attachment; filename=" + new AutoNumber().GetNumberByTime