日期:2014-05-17  浏览次数:20835 次

把Access的数据导出到Execl2007
求高手帮帮忙

------解决方案--------------------
这是第二种写入方法:既有插入,又有更新的操作,稍后将在博客连载发布
C# code

        private void 写入Excel文件(DataTable 数据表, string 文件名)
        {
            计数 = 0;
            try
            {
                string 微软表格 = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + System.Environment.CurrentDirectory + "\\" + 文件名 + "; Extended Properties = \"Excel 12.0 Xml; HDR = No\"";
                OleDbConnection 表格文件 = new OleDbConnection(微软表格);
                表格文件.Open();
                System.Data.OleDb.OleDbCommand 执行写入 = new OleDbCommand();
                执行写入.Connection = 表格文件;
                for (int 行 = 0, 数 = 数据表.Rows.Count; 行 < 数; 行++)
                {
                        执行写入.CommandText = "INSERT INTO [sheet1$] (省, 市, 区、县, 镇、乡, 街、路、村, ☆, 自然村, 村民组, 门牌号, 原字符☆替字符, 序) VALUES ('"
                           + 数据表.Rows[行][0] + "','" + 数据表.Rows[行][1] + "','" + 数据表.Rows[行][2] + "','"
                           + 数据表.Rows[行][3] + "','" + 数据表.Rows[行][4] + "','" + 数据表.Rows[行][5] + "','"
                           + 数据表.Rows[行][6] + "','" + 数据表.Rows[行][7] + "','" + 数据表.Rows[行][8] + "','"
                           + 数据表.Rows[行][9] + "','序" + (行 + 1).ToString() + "')";
                        计数 = 执行写入.ExecuteNonQuery(); if (滚动) 原条件设定数++; else 副条件设定数++;
                }
                表格文件.Close(); 数据表.Clear();
            }
            catch (System.Data.OleDb.OleDbException Ts)
            { MessageBox.Show("写入Excel发生错误:" + Ts.Message, "错误?"); }
        }