从Sql以特定格式将数据提取到Excel

时间:2018-06-21 11:29:01

标签: c# sql excel

我想从给定格式的表中提取数据,目前我正在使用

System.Data.DataTable使用下面给出的函数从数据库获取数据(DBhelerp返回DataTable)

public void GetData()
{
dgvResult.DataSource=new DBHelper.GetTable("Select * from Candidate c inner join Qualification q on ( q.candidateId=c.CandidateId)");
}

将结果分配给dgvResult.DataSource,然后将

使用以下功能将此数据复制到excel

private void copyAlltoClipboard()
        {

                dgvResult.SelectAll();
                DataObject dataObj = dgvResult.GetClipboardContent();
                if (dataObj != null)
                    Clipboard.SetDataObject(dataObj);

        }

,它给出以下结果。

enter image description here

我的问题是,如何获取给定(指定)格式的数据(图像结果表)。

  

我不想使用任何库(即Excel)的另一件事   默认控件。

enter image description here

2 个答案:

答案 0 :(得分:0)

这样的事情应该为你做。

Excel.Application excel= new Excel.Application(); 


private System.Data.DataTable GetData()
{
SqlConnection conn= new SqlConnection(@"server=(local)\vste;uid=sa;pwd=;database=northwind;");
SqlDataAdapter adapter= new SqlDataAdapter("select * from Customers",conn);
DataSet myDataSet= new DataSet();
try {
adapter.Fill(myDataSet,"Customer");
}
catch(Exception ex) {
MessageBox.Show(ex.ToString());
}
return myDataSet.Tables[0];
} 


foreach(DataColumn col in table.Columns)
{
colIndex++; excel.Cells[1,colIndex]=col.ColumnName;
}
foreach(DataRow row in table.Rows) {
rowIndex++; colIndex=0;
foreach(DataColumn col in table.Columns) {
colIndex++; excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
}
} 

答案 1 :(得分:-1)