当前位置:数据库 > Excel >>

sql 2008数据库导入导出到excel,怎么到啊?有全的代码吗?(C#)

追问:我要导入导出的文件是有具体的文本格式的 ,就是说不是全部导入导出到一行上就可以,是有样式的要求的?那样的话都需要什么属性啊??
答案:using System;
using System.Collections.Generic;
using System.Text;
using Excel;//下载1个Excel.dll文件,项目引用下
using System.Drawing;
using System.Reflection;

namespace Common
{
    public class cls_Excel
    {
        #region 变量声明
        private Excel.Application ExcelApp = null;
        private Excel.Workbooks workbooks = null;
        private _Workbook workbook = null;
        private _Worksheet worksheet = null;
        #endregion
        #region 构造函数
        /// <summary>
        /// 横版
        /// </summary>
        /// <param name="IsInilize">是否要初始化一个新的Excel对象</param>
        public cls_Excel(bool IsInilize)
        {
            if (IsInilize == true)
            {
                ExcelApp = new Excel.Application();
                workbooks = ExcelApp.Workbooks;
                workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                worksheet = (Excel.Worksheet)workbook.Worksheets[1];
            }
        }
        /// <summary>
        /// 竖版
        /// </summary>
        /// <param name="IsInilize">是否要初始化一个新的Excel对象</param>
        public cls_Excel(bool IsInilize, bool bSH)
        {
            if (IsInilize == true)
            {
                ExcelApp = new Excel.Application();
                workbooks = ExcelApp.Workbooks;
                workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                worksheet = (Excel.Worksheet)workbook.Worksheets[1];
            }
        }
        ~cls_Excel()
        {
            GC.Collect();
        }
        #endregion
        #region 自定义函数
        /// <summary>
        /// 打开一个excel文件
        /// </summary>
        /// <param name="strExcelName">要打开的excel文件的路径以及名称</param>
        /// <returns>是否打开成功</returns>
        public bool OpenExcel(string strExcelName)
        {
            try
            {
                ExcelApp = new Excel.Application();
                if (ExcelApp == null)
                {
                    return false;
                }
                ExcelApp.Visible = false;
                ExcelApp.UserControl = false;
                workbooks = ExcelApp.Workbooks;
                workbook = workbooks.Open(strExcelName, Missing.Value, false, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                return true;
            }
            catch (Exception ex)
            {
                //System.Windows.Forms.MessageBox.Show(ex.StackTrace + ex.Message, "错误");
                return false;
            }
        }

        /// <summary>
        /// 返回设定区域并返回
        /// </summary>
        /// <param name="iStartRow"></param>
        /// <param name="iStartCol"></param>
        /// <param name="iEndRow"></param>
        /// <param name="iEndCol"></param>
        /// <returns></returns>
        public Array getArea(int iStartRow, int iStartCol, int iEndRow, int iEndCol)
        {
            Array dtshet;
            dtshet = (Array)worksheet.get_Range(worksheet.Cells[iStartRow, iStartCol], worksheet.Cells[iEndRow, iEndCol]).Value;
            return dtshet;
        }

        /// <summary>
        /// 读取当前sheet的某一格的数据
        /// </summary>
        /// <param name="strRow">要读取得那一格的行的名称</param>
        /// <param name="strColumn">要读取得那一格的列的名称</param>
        /// <returns>要读取得那一格的数据</returns>
        public string ReadCell(string strColumn, string strRow)
        {
            try
            {
                if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
                {
                    string strRet;
                    Range range1 = worksheet.get_Range(strColumn + strRow, System.Reflection.Missing.Value);
                    if (range1 == null)
                    {
                        return "Range Null";
                    }
                    if (range1.Value2 == null)
                    {
                        strRet = "";
                    }
                    else
                    {
                        strRet = range1.Value2.ToString();
                    }
                    return strRet;
                }
                return "Read Error";
            }
            catch
            {
                return "Read Error";
            }
        }

        /// <summary>
        /// 读取当前sheet的某一格的数据
        /// </summary>
        /// <param name="iRow">要读取得那一格的行的索引</param>
        /// <param name="iColumn">要读取得那一格的列的索引</param>
        /// <returns>要读取得那一格的数据</returns>
        public string ReadCell(int iRow, int iColumn)
        {
            try
            {
                if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
                {

                    //return ((Excel.Worksheet)ExcelApp.ActiveSheet).Cells(iRow, iColumn);
                    string strRet = "";
                    //   Range range1 = (Excel.Range)((Excel.Worksheet)ExcelApp.ActiveSheet).Cells[iRow, iColumn];
                    Range range1 = (Excel.Range)(((Excel.Worksheet)ExcelApp.ActiveSheet).Cells[iRow, iColumn]);
                    if (range1 == null)
                    {
                        return "Range Null";
                    }
                    if (range1.Value2 == null)
                    {
                        strRet = "";
                    }
                    else
                    {
                        strRet = range1.Value2.ToString();
                    }
                    return strRet;
                }
                return "Read Error";
            }
            catch
            {
                return "Read Error";
            }
        }

        /// <summary>
        /// 向当前sheet的某一格写入数据
        /// </summary>
        /// <param name="strRow">要写入得那一格的行的名称</param>
        /// <param name="strColumn">要写入得那一格的列的名称</param>
        /// <param name="objData">要写入的数据</param>
        /// <returns>写入成功与否</returns>
        public bool WriteCell(string strRow, string strColumn, object objData)
        {
            try
            {
                if ((ExcelApp != null) && (ExcelApp.ActiveWorkbook != null))
                {
                    Range range1 = worksheet.get_Range(strColumn + strRow, System.Reflection.Missing.Value);

                    if (range1 == null)
                    {
                        return false;
                    }
                    range1.Value2 = objData;
                    // range1.Cells.Borders.LineStyle = Excel.XlLineStyle.xlLineStyleNone;
                    return true;
                }
                return false;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 写区域数据
        /// </summary>
        /// <param name="dt">数据源</param>
        /// <param name="StartRow">Excel写入起始行</param>
        /// <param name="StartColumn">Excel写入起始列</param>
        /// <returns>操作是否成功</returns>
        public bool WriteArea(System.Data.DataTable dt, int StartRow, int StartColumn)
        {
            int rowCount = dt.Rows.Count;		//DataTable行数
            int colCount = 0;	                //DataTable列数

            //利用二维数组批量写入
            object[,] ss = null;
            try
            {


                for (int j = 0; j < rowCount; j++)
                {
                    colCount = colCount > d
其他:导出比较方便啦。把数据select出来,然后选择把结果保存为excel就可以了。
将EXCEL数据导入SQL数据库的方法有很多种,目前仅将我知道的整理如下(具体自己百度一下):
1.使用SQL中的OPENROWSET函数
2.使用SQL企业管理器中的数据库的“导入数据”功能
3.自己写一个比如:select * into 表 from OPENROWSE('MICROSOFT.JET.OLEDB.4.0','Excel5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) excel版本不一定,可能一个高版本一个低的!所以会出现这种情况! 

上一个:如何将sql数据库中某个表的数据导成Excel
下一个:excel服务器连接数据库SQL的问题 提示的错误是:SQL server 不存在或拒绝访问

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,