Excel导出选择性数据字段 sql server查询结果集中字段很多 怎么样才能点击 按钮 出现对话框 选择要导出的字段 点击导出数据 或者用别的方法选择性导出数据都可以 请大虾们指导哈。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 gridview,repeater中绑定字段,通过checkbox选择导出的字段根据选择字段,查询数据绑定到excel 查询数据重新生成dataset,再导出excel 选择需要到处字段。查询数据到dataset中。然后从datatable到处到excel。下面两个方法都可以用。//方法一//public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)//{// DataTable dataTable = dataSet.Tables[0];// int rowNumber = dataTable.Rows.Count;// int rowIndex = 1;// int colIndex = 0;// if (rowNumber == 0)// {// return false;// }// //建立Excel对象// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();// excel.Application.Workbooks.Add(true);// excel.Visible = isShowExcle;// //生成字段名称// foreach (DataColumn col in dataTable.Columns)// {// colIndex++;// excel.Cells[1, colIndex] = col.ColumnName;// }// //填充数据// foreach (DataRow row in dataTable.Rows)// {// rowIndex++;// colIndex = 0;// foreach (DataColumn col in dataTable.Columns)// {// colIndex++;// excel.Cells[rowIndex, colIndex] = row[col.ColumnName];// }// }// return true;//}//方法二(速度最快)/// <summary>/// 将数据集中的数据导出到EXCEL文件/// </summary>/// <param name="dataSet">输入数据集</param>/// <param name="isShowExcle">是否显示该EXCEL文件</param>/// <returns></returns>public bool DataSetToExcel(DataSet dataSet, bool isShowExcle){DataTable dataTable = dataSet.Tables[0];int rowNumber = dataTable.Rows.Count;//不包括字段名int columnNumber = dataTable.Columns.Count;int colIndex = 0;if (rowNumber == 0) {return false;}//建立Excel对象 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//excel.Application.Workbooks.Add(true);Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];excel.Visible = isShowExcle;//Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[1];Microsoft.Office.Interop.Excel.Range range;//生成字段名称 foreach (DataColumn col in dataTable.Columns){colIndex++;excel.Cells[1, colIndex] = col.ColumnName;}object[,] objData = new object[rowNumber, columnNumber]; for (int r = 0; r < rowNumber; r++) {for (int c = 0; c < columnNumber; c++){objData[r, c] = dataTable.Rows[r][c];}//Application.DoEvents();}// 写入Excel range = worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]);//range.NumberFormat = "@";//设置单元格为文本格式range.Value2 = objData;worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, 1]).NumberFormat = "yyyy-m-d h:mm";return true; } 是dataset导出到 excel 打错了。 读取数据库中数值个数不定的数据的方法 在一个web control控件里更新了一下数据,如何自动触发一个linkbutton控件事件,更新另一个webcontrol控件里的值 关于ASP.NET的EXCEL操作 不用工具csdn论坛现在的帖子怎么保存 ,没法另存!! xmlhttp无刷新 每隔5秒钟读取一次数据表里的时间,再时间相减(有思路写不出代码,星期天在线等) Gridview 的数据刷新问题 怎么设置一个html控件的值 缓存的问题 如何以对repeater动态添加列 进入者有分:如何在关闭word进程? 删除功能 ashx不能有namespace?
根据选择字段,查询数据绑定到excel
然后从datatable到处到excel。下面两个方法都可以用。
//方法一
//public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
//{
// DataTable dataTable = dataSet.Tables[0];
// int rowNumber = dataTable.Rows.Count;// int rowIndex = 1;
// int colIndex = 0;
// if (rowNumber == 0)
// {
// return false;
// }// //建立Excel对象
// Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// excel.Application.Workbooks.Add(true);
// excel.Visible = isShowExcle;// //生成字段名称
// foreach (DataColumn col in dataTable.Columns)
// {
// colIndex++;
// excel.Cells[1, colIndex] = col.ColumnName;
// }// //填充数据
// foreach (DataRow row in dataTable.Rows)
// {
// rowIndex++;
// colIndex = 0;
// foreach (DataColumn col in dataTable.Columns)
// {
// colIndex++;
// excel.Cells[rowIndex, colIndex] = row[col.ColumnName];
// }
// }// return true;
//}//方法二(速度最快)
/// <summary>
/// 将数据集中的数据导出到EXCEL文件
/// </summary>
/// <param name="dataSet">输入数据集</param>
/// <param name="isShowExcle">是否显示该EXCEL文件</param>
/// <returns></returns>
public bool DataSetToExcel(DataSet dataSet, bool isShowExcle)
{
DataTable dataTable = dataSet.Tables[0];
int rowNumber = dataTable.Rows.Count;//不包括字段名
int columnNumber = dataTable.Columns.Count;
int colIndex = 0;if (rowNumber == 0)
{
return false;
}//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
excel.Visible = isShowExcle;
//Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)excel.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range;//生成字段名称
foreach (DataColumn col in dataTable.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
}object[,] objData = new object[rowNumber, columnNumber]; for (int r = 0; r < rowNumber; r++)
{
for (int c = 0; c < columnNumber; c++)
{
objData[r, c] = dataTable.Rows[r][c];
}
//Application.DoEvents();
}// 写入Excel
range = worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]);
//range.NumberFormat = "@";//设置单元格为文本格式
range.Value2 = objData;
worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, 1]).NumberFormat = "yyyy-m-d h:mm";return true;
}