/// <summary>
/// 导出Excel(按照拖到的列的顺序)(流)
/// </summary>
/// <param name="fileName">窗体的文本名称</param>
/// <param name="myDGV">要导出的DatagridView数据</param>
public static void PrintDataGridViewSave(string fileName, DataGridView myDGV)//另存新档按钮 导出成Excel
{
if (myDGV.Rows.Count > 0)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "保存为Excel文件";
saveFileDialog.FileName = fileName;
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName.IndexOf(":") < 0) return; //被点了"取消"
Thread.Sleep(1000); //休眠1秒
Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0)); //生成文件
//StreamWriter sw = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("gb2312"));
StringBuilder sb = new StringBuilder();
try
{
string[] array = new string[myDGV.Columns.Count];
//获取Visble =true 的列
foreach (DataGridViewColumn column in myDGV.Columns)
{
if (column.Visible == true)
{
array[column.DisplayIndex] = column.HeaderText + '|' + column.Name;
}
}
int RowsCount = myDGV.Rows.Count;
int ColumnsCount = array.Length;
//取列名称
for (int i = 0; i < ColumnsCount; i++)
{
string[] str = new string[2];
try
{
str = array.GetValue(i).ToString().Split('|');
sb.Append(str[0] + "\t");
}
catch
{
continue;
}
}
sb.Append(Environment.NewLine); //换行字符
//导出列内容
for (int j = 0; j < RowsCount; j++)
{
//int mm = 0;
System.Windows.Forms.Application.DoEvents();
for (int k = 0; k < ColumnsCount; k++)
{
string[] str = new string[2];
if (array.GetValue(k) == null)
continue;
str = array.GetValue(k).ToString().Split('|');
sb.Append(myDGV.Rows[j].Cells[str[1]].FormattedValue.ToString().Trim() + "\t");
}
sb.Append(Environment.NewLine);
}
sw.WriteLine(sb.ToString());
sw.Flush();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
}
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>