日期:2014-05-20  浏览次数:20754 次

Winform导出Excel问题
现查询返回一个DataTable,分组后导出至一个Excle文件中,要求每组数据放在一个工作表中(Sheet)。请问怎样实现?并且要将每个Sheet的名字更改为数据中的某一个列,如查询出来NO,Name。。。。。No非主键,相同的可能有多条,将每个Sheet的名字设置为No。麻烦知道的说下!!!急~~~~~~

------解决方案--------------------
看看这个http://www.cnblogs.com/lingyun_k/archive/2005/11/07/271068.html

------解决方案--------------------
导出到 Excel 中多个工作表(Sheet) 的方法
------解决方案--------------------
探讨
引用:

导出到 Excel 中多个工作表(Sheet) 的方法

这个是asp.net里面的,我需要的是winform里面的导出Excel文件的!

------解决方案--------------------
就是生成xml格式的excel文件,直接写成文件就可以了,可以生成多个Sheet。
你还可以使用Excel.Application来实现
------解决方案--------------------
private void btn_Dc_Click(object sender, EventArgs e)
{
if (lbl_SAMPLE_ID.Text == "lbl_SAMPLE_IDNone")
{
MsgBox.alert(ReturnTck.getTck("tck_tjbb_01"));
return;
}
g_strSql = @"select a.DataCell_ID,ParentCell_ID,APPLI_OLDNAME,APPLI_NAME,a.APPLI_TYPE,Cell_No,Config_Start,
Start_Bit,Config_Over,Over_Bit,Config_AValue,Config_BValue,b.APPLI_TYPE,MODE_MIN,MODE_MAX
from Basic_dataCell a left join Sys_Config b on a.DataCell_ID=b.DataCell_ID 
where a.Sample_ID='" + lbl_SAMPLE_ID.Text + "' order by ParentCell_ID,Cell_No";
DataTable m_dtExcel = MySqlHelper.ExecuteDataTable(g_strSql);
if (m_dtExcel.Rows.Count > 0)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Application.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range = null;
excel.Visible = true;

long rowRead = 0;

for (int i = 0; i < m_dtExcel.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = m_dtExcel.Columns[i].ColumnName;
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
}
//写入数值
for (int r = 0; r < m_dtExcel.Rows.Count; r++)
{
for (int i = 0; i < m_dtExcel.Columns.Count; i++)
{
worksheet.Cells[r + 2, i + 1] = "'" + m_dtExcel.Rows[r][i];
}
rowRead++;
}

}
}
------解决方案--------------------
SqlConnection sqlcon = new SqlConnection("user id=sa;password=towin-2;initial catalog=lianxi;data source=.;connect Timeout=20");
//定义SqlConnection对象实例并连接数据库 


SqlDataAdapter myda; //定义SqlDataAdapter对象实例


DataSet myds; //定义DataSet对象实例



public bool ExportDataGridview(DataGridView dgv, bool isShowExcle)

{

if (dgv.Rows.Count == 0)
return false;

//建立Excel对象

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

excel.Application.Workbooks.Add(true);

excel.Visible = isShowExcle;
//生成字段名称