Excel.Application excel = new Excel.Application();
excel.Visible = true;
excel.Workbooks.Add(Missing.Value);
Worksheet worksheet = (Worksheet) excel.ActiveSheet;
worksheet.Cells[1,1] = ds.Tables[i]["列名"].ToString(); //这用个循环写入数据
worksheet.SaveAs("c:\\bin.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
excel.Quit();
System.GC.Collect();
excel.Visible = true;
excel.Workbooks.Add(Missing.Value);
Worksheet worksheet = (Worksheet) excel.ActiveSheet;
worksheet.Cells[1,1] = ds.Tables[i]["列名"].ToString(); //这用个循环写入数据
worksheet.SaveAs("c:\\bin.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
excel.Quit();
System.GC.Collect();
excel.Visible = true;
excel.Workbooks.Add(Missing.Value);
Worksheet worksheet = (Worksheet) excel.ActiveSheet;
for(int i=0;i<dt.Columns.Count)
{
for(int j=0;j<dt.Rows.Count;j++)
{
worksheet.Cells[i,j] = dt.Rows[i][j].ToString(); //这用个循环写入数据
}
}
worksheet.SaveAs("c:\\bin.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
excel.Quit();
System.GC.Collect();
首先要添加Excel的引用
using Excel
怎么还是找不到呢
The type or namespace name 'Excel' could not be found (are you missing a using directive or an assembly reference?)
直接用Excel里面的数据导出功能吧。它所需要的时间不因为你的记录数据多少而来。一万条记录,只用十秒左右(如果情况好点,五秒就可以了)。
详细的在:
http://www.csdn.net/Develop/Read_Article.asp?Id=22183
具体的看:http://www.csdn.net/Develop/Read_Article.asp?Id=21391
运行到这一行出错:excel = new Excel.ApplicationClass();
System.UnauthorizedAccessException: 拒绝访问
再请各位老大帮帮忙
using Excel;
namespace 类库
{
public class Excel导出
{
public Excel导出(string 查询语句,string 标题)
{
Excel.Application excel;
Excel._Workbook xBk;
Excel._Worksheet xSt;
Excel._QueryTable xQt;
string Conn = "ODBC;DRIVER=SQL Server;SERVER=[服务器地址或者名称];UID=sa;PWD=[密码];APP=[应用程序名称(一般为操作系统名)];WSID=[工作站名称(客户端)];DATABASE=[数据库名称]";
string Select = 查询语句;
excel = new Excel.ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = (Excel._Worksheet)xBk.ActiveSheet;
excel.Cells[2,2] = 标题;
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Name = "黑体";
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
xQt = xSt.QueryTables.Add(Conn,xSt.get_Range(excel.Cells[4,2],excel.Cells[4,2]),Select);
xQt.Name = "导出示例";
xQt.FieldNames = true;
xQt.RowNumbers = false;
xQt.FillAdjacentFormulas = false;
xQt.PreserveFormatting = false;
xQt.BackgroundQuery = true;
xQt.RefreshStyle = Excel.XlCellInsertionMode.xlInsertDeleteCells;
xQt.AdjustColumnWidth = true;
xQt.RefreshPeriod = 0;
xQt.PreserveColumnInfo = true;
xQt.Refresh(xQt.BackgroundQuery);
excel.Visible = true;
}
}
}这是一个写好的类
只需要实例化,传参数进去就可以导出Excel了
在我本机已经测试通过string Conn = "ODBC;DRIVER=SQL Server;SERVER=grd-uright-fan;UID=sa;PWD=guru;APP=Microsoft(R) Windows (R) 2000 Operating System;WSID=GRD-URIGHT-FAN;DATABASE=MyDatabases";这是连接字符传的例子
有问题,完整的引用名称是什么?
怎么我写excel = new Excel.ApplicationClass();的时候还是错的。