/// <summary>
/// 把DataTable内容导出为excel并返回客户端
/// </summary>
/// <param name="dtData">待导出的DataTable</param>
public bool DataTableToExcelTow(DataTable dtData)
{
SaveFileDialog saveFileDlg = new SaveFileDialog();
try
{
//Select Excel File
saveFileDlg.InitialDirectory = "c://";
saveFileDlg.Filter = "Excel files (*.xls)|*.xls";
saveFileDlg.FilterIndex = 2;
saveFileDlg.RestoreDirectory = true;
if (saveFileDlg.ShowDialog() != DialogResult.OK)
return false;
//Create OleDbConn
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=" + saveFileDlg.FileName + ";"
+ "Extended Properties=/"Excel 5.0;HDR=YES/"";
OleDbConnection OleDbConn = new OleDbConnection();
OleDbConn.ConnectionString = connStr;
OleDbConn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = OleDbConn;
//Create Table Of Excel
string createTableStr = "Create Table [" + dtData.TableName + "](";
int i, j, k;
for (i = 0; i < dtData.Columns.Count - 1; i++)
{
createTableStr += "[" + dtData.Columns[i].ColumnName + "] text,";
}
createTableStr += dtData.Columns[i].ColumnName + " text)";
cmd.CommandText = createTableStr;
cmd.ExecuteNonQuery();
//Save Data To Excel File
string insertStr = "";
for (j = 0; j < gv.RowCount; j++)
{
insertStr = "INSERT INTO [" + dtData.TableName + "] values('";
for (k = 0; k < dtData.Columns.Count - 1; k++)
{
insertStr += dtData.Rows[k].ToString() + "','";
}
insertStr += dtData.Rows[k].ToString() + "')";
cmd.CommandText = insertStr;
cmd.ExecuteNonQuery();
}
//Close OleDbConn
OleDbConn.Close();
}
catch (Exception Ex)
{
throw new Exception(Ex.Message);
}
finally
{
if (saveFileDlg != null)
{
saveFileDlg.Dispose();
}
}
}