博文以导出Access数据库中的数据表为例,只要修改一下同样可以用于SQL Server数据库。
string filePath = "F:\\Book.xls";
string OleDbConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = .\\Data\\Student.accdb;Jet OLEDB:Database Password = 123456";
OleDbConnection cnn = new OleDbConnection(OleDbConnectionString);
cnn.Open();
OleDbCommand cmd = new OleDbCommand("select count(*) from [Books]", cnn);
int num = (int)(cmd.ExecuteScalar());
//如果数据项的个数大于一个sheet表的最大行数,则拆分保存在多个sheet表中
if (num <= 65535)
{
// [Excel 8.0;database= excel名].[sheet名] 如果是新建sheet表不能加$,如果向sheet里插入数据要加$
// Excel 2003的sheet表最大行数65536,最大列数256。因为列头要占据一行,所以最多存储65535条数据
cmd = new OleDbCommand("select top 65535 ISBN as ISBN, Title as 书名, Author as 作者, RegisterTime as 登记时间 into [Excel 8.0;database=" + filePath + "].[书籍表] fr