您的位置:首页 > 其它

gridView数据导入到Excel

2011-03-15 16:37 323 查看
#region 导出信息(公共方法) public void Export(DataGridView dgvExport,string strFileName,string strTips)
/// <summary>
/// 导出信息(公共方法)
/// </summary>
/// <param name="dgvExport">datagridview控件中的数据</param>
/// <param name="strFileName">文件名</param>
/// <param name="strTips">提示信息</param>
public void Export(DataGridView dgvExport,string strFileName,string strTips)
{
//判断控件中是否有数据
if (dgvExport.Rows.Count > 0)
{
//初始化导出对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.DefaultExt = "xls";
saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.FileName = strFileName;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出到EXCEL";

//弹出保存文件的对话框
saveFileDialog.ShowDialog();

//文件名为空的话,返回
if (saveFileDialog.FileName == "")
return;

//数据流声明
Stream myStream;
StreamWriter swOut;

//定义列名字符串
string strColumnText;

//初始化对象
myStream = saveFileDialog.OpenFile();
swOut = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
strColumnText = "";

//若控件中有数据,则执行操作
if (dgvExport.RowCount > 0)
{
//读取信息
try
{
//初始化列
for (int i = 0; i < dgvExport.ColumnCount; i++)
{
//只导出控件中可见的数据
if (dgvExport.Columns[i].Visible == true)
{
if (i > 0)
{
//制表符
strColumnText += "/t";
}
//获取列名字符串作为Excel文件中的列名
strColumnText += dgvExport.Columns[i].HeaderText;
}
}

//输出strColumnText
swOut.WriteLine(strColumnText);

//读取每一条数据的内容
for (int j = 0; j < dgvExport.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dgvExport.Columns.Count; k++)
{
//只导出控件中可见的数据
if (dgvExport.Columns[k].Visible == true)
{
if (k > 0)
{
//制表符
tempStr += "/t";
}
//获取控件中非空单元格中的信息
if(dgvExport.Rows[j].Cells[k].Value!=null)
tempStr += dgvExport.Rows[j].Cells[k].Value.ToString();
}
}

//输出信息
swOut.WriteLine(tempStr);
}

}

//捕获异常
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

finally
{
//关闭数据流
swOut.Close();
myStream.Close();
}
}
}

//控件中没有信息,给出提示
else
{
MessageBox.Show(strTips, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: