在c#里关于数据的导入导出微软提供了很多接口,就比如 把sql server里是数据导出到excel,微软就提供了Microsoft.Office.Interop.Excel类来实现这些, 有牛人封装好了这些方法,比如GemBox.ExcelLite.dll,下面我们就用这个来实现。
using System;其实很简单,GemBox.ExcelLite.dll大家可以网上下一个,然后添加引用就可以了,至于你要实现什么具体的功能就要再细节上下点功夫了。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using GemBox.ExcelLite;
namespace SqlToExcel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//连接数据库
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Persist Security Info=False;User ID=sa;Initial Catalog=lucene;Data Source=ADMIN\SQLEXPRESSZHHP;Pwd=chinaadmin;");
conn.Open ();
SqlCommand comm=new SqlCommand ("SELECT * FROM Test",conn);
SqlDataAdapter da=new SqlDataAdapter (comm);
DataSet ds=new DataSet();
da.Fill(ds);
dataGridView1 .DataSource=ds.Tables[0].DefaultView;
conn.Close();
}
//数据导出到EXCEL
private void button2_Click(object sender, EventArgs e)
{
ExcelFile excelFile = new ExcelFile();
ExcelWorksheet sheet = excelFile.Worksheets.Add("Test");
int columns = dataGridView1.Columns.Count;
int rows = dataGridView1.Rows.Count;
for (int j = 0; j < columns; j++)
{
sheet.Cells[0, j].Value = dataGridView1.Columns[j].HeaderText;
}
for (int i = 1; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
sheet.Cells[i, j].Value = dataGridView1[j, i - 1].Value.ToString().Trim();
}
}
excelFile.SaveXls("./Users.xls");
MessageBox.Show("生成成功");
}
}
}