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 不存在或拒绝访问