c#sql数据导出到excel

这篇文章主要介绍了C#将Sql数据保存到Excel文件中的方法,文中的ExportExcel可起到将sql数据导出为Excel的作用,需要的朋友可以参考下
public string ExportExcel( DataSet ds,string saveFileName)
{
  try
  {
 if (ds == null) 
   return "数据库为空";
  
 bool fileSaved = false;
 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
 if (xlApp == null)
 {
   return "无法创建Excel对象,可能您的机子未安装Excel";
 }
 Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
 Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
 Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
 //写入字段
 for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
 {
   worksheet.Cells[1, i + 1] = ds.Tables[0].Columns[i].ColumnName;
 }
 //写入数值
 for (int r = 0; r < ds.Tables[0].Rows.Count; r++)
 {
   for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
   {
 worksheet.Cells[r + 2, i + 1] = ds.Tables[0].Rows[r][i];
   }
   System.Windows.Forms.Application.DoEvents();
 }
 worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
 if (saveFileName != "")
 {
   try
   {
 workbook.Saved = true;
 workbook.SaveCopyAs(saveFileName);
 fileSaved = true;
   }
   catch (Exception ex)
   {
 fileSaved = false;
 MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
   }
 }
 else
 {
   fileSaved = false;
 }
 xlApp.Quit();
 GC.Collect();//强行销毁
 if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
 return "成功保存到Excel";
  }
  catch (Exception ex)
  {
 return ex.ToString();
  }
}


?
你可以使用 C# 中的 ADO.NET 来快速导出数据Excel。下面是一个基本的示例: ```csharp using System; using System.Data; using System.Data.SqlClient; using System.IO; using System.Reflection; using Microsoft.Office.Interop.Excel; namespace ExportToExcel { class Program { static void Main(string[] args) { // 数据库连接字符串 string connectionString = "Data Source=(local);Initial Catalog=MyDatabase;Integrated Security=True"; // SQL 查询语句 string query = "SELECT * FROM MyTable"; // 创建 SQL 连接对象 using (SqlConnection connection = new SqlConnection(connectionString)) { // 打开连接 connection.Open(); // 创建 SQL 命令对象 using (SqlCommand command = new SqlCommand(query, connection)) { // 创建数据适配器对象 using (SqlDataAdapter adapter = new SqlDataAdapter(command)) { // 创建数据集对象 DataSet dataSet = new DataSet(); // 填充数据集 adapter.Fill(dataSet); // 创建 Excel 应用程序对象 Application excel = new Application(); excel.Visible = false; excel.DisplayAlerts = false; // 创建 Excel 工作簿对象 Workbook workbook = excel.Workbooks.Add(Missing.Value); // 创建 Excel 工作表对象 Worksheet worksheet = (Worksheet)workbook.ActiveSheet; // 写入数据Excel 工作表 for (int i = 0; i < dataSet.Tables[0].Columns.Count; i++) { worksheet.Cells[1, i + 1] = dataSet.Tables[0].Columns[i].ColumnName; } for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) { for (int j = 0; j < dataSet.Tables[0].Columns.Count; j++) { worksheet.Cells[i + 2, j + 1] = dataSet.Tables[0].Rows[i][j]; } } // 保存 Excel 文件 workbook.SaveAs("data.xlsx"); // 关闭 Excel 应用程序对象 excel.Quit(); } } } } } } ``` 在上面的代码中,我们首先定义了数据库连接字符串和 SQL 查询语句。然后,我们使用 ADO.NET 创建 SQL 连接对象、SQL 命令对象和数据适配器对象,使用数据适配器对象填充数据集。接着,我们创建 Excel 应用程序对象、Excel 工作簿对象和 Excel 工作表对象,然后将数据写入 Excel 工作表。最后,我们保存 Excel 文件并关闭 Excel 应用程序对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值