当前位置:文档之家› DataGridView快速导出为Excel

DataGridView快速导出为Excel

DataGridView快速导出为Excel
DataGridView快速导出为Excel

★调用实例:

在Winforms的“导出excel”按钮的Click事件填写如下代码:

List list = new List();

list.Add("员工编号");

list.Add("身份证号");

list.Add("打卡时间");

XPri.Export(dgvData, progressBar1, list);

//list为泛型对象, dgvData是DataGridView控件, progressBar1是progressBar控件。//设置progressBar1.Visible=false;

//员工编号, 身份证号, 打卡时间为dgvData的列的文本HeadText

//员工编号, 身份证号, 打卡时间为需要强制导出为文本的列

★源代码如下:(方法重载文件名:XPri.cs)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using https://www.doczj.com/doc/ad11870942.html,mon;

using DataAccess.Data;

using System.Data.OleDb;

using System.Windows.Forms;

using System.IO;

namespace HrManager

{

public class XPri

{

///

///普?通a?§快¨?速¨′导ì?出?

///

///

///

public static void Export(DataGridView dataGridView1, ProgressBar pb)

{

#region

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Execl files (*.xls)|*.xls";

saveFileDialog.FilterIndex = 0;

saveFileDialog.RestoreDirectory = true;

//saveFileDialog.CreatePrompt = true;

saveFileDialog.Title = "导ì?出?为aExcel文?件t";

saveFileDialog.FileName = string.Format("{0}.xls",

DateTime.Now.ToString("yyyyMMddHHmmss"));

if (saveFileDialog.ShowDialog() != DialogResult.OK)

return;

if (saveFileDialog.FileName == "")

return;

Stream myStream;

myStream = saveFileDialog.OpenFile();

StreamWriter sw = new StreamWriter(myStream,

System.Text.Encoding.GetEncoding(-0));

string str = "";

try

{

for (int i = 0; i < dataGridView1.ColumnCount; i++)

{

if (i > 0)

{

str += "\t";

}

str += dataGridView1.Columns[i].HeaderText;

}

sw.WriteLine(str);

pb.Visible = true;

pb.Maximum = dataGridView1.Rows.Count;

for (int j = 0; j < dataGridView1.Rows.Count; j++)

{

string tempStr = "";

for (int k = 0; k < dataGridView1.Columns.Count; k++)

{

if (k > 0)

{

tempStr += "\t";

}

DataGridViewComboBoxCell cb = dataGridView1.Rows[j].Cells[k] as DataGridViewComboBoxCell;

if (cb == null)

{

tempStr +=

Convert.ToString(dataGridView1.Rows[j].Cells[k].Value);

}

else

{

tempStr += Convert.ToString(cb.FormattedValue);

}

}

sw.WriteLine(tempStr);

pb.Value = j + 1;

}

sw.Close();

myStream.Close();

pb.Visible = false;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "出?错?¨a信?息?é");

}

finally

{

sw.Close();

myStream.Close();

}

#endregion

MessageBox.Show("导ì?出?成¨|功|", "提?¨¢示o?");

}

///

///特??殊oa情¨|况?时o?à的ì?导ì?出? 工?è号?、?é身|¨a份¤Y证?è号?、?é电ì?话??等쨨需¨¨要°a转áa义°?为a字á?符¤?串??

///

///

///

///前??面?要°a+'的ì?列¢D(需¨¨要°a强?制?文?本à?列¢D的

ì?HeadText),如¨?身|¨a份¤Y证?è号?,工?è号?,电ì?话??等쨨

public static void Export(DataGridView dataGridView1, ProgressBar pb, List list)

{

#region

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Execl files (*.xls)|*.xls";

saveFileDialog.FilterIndex = 0;

saveFileDialog.RestoreDirectory = true;

//saveFileDialog.CreatePrompt = true;

saveFileDialog.Title = "导ì?出?为aExcel文?件t";

saveFileDialog.FileName = string.Format("{0}.xls",

DateTime.Now.ToString("yyyyMMddHHmmss"));

if (saveFileDialog.ShowDialog() != DialogResult.OK)

return;

if (saveFileDialog.FileName == "")

return;

Stream myStream;

myStream = saveFileDialog.OpenFile();

StreamWriter sw = new StreamWriter(myStream,

System.Text.Encoding.GetEncoding(-0));

string str = "";

try

{

for (int i = 0; i < dataGridView1.ColumnCount; i++)

{

if (i > 0)

{

str += "\t";

}

str += dataGridView1.Columns[i].HeaderText;

}

sw.WriteLine(str);

pb.Visible = true;

pb.Maximum = dataGridView1.Rows.Count;

for (int j = 0; j < dataGridView1.Rows.Count; j++)

{

string tempStr = "";

for (int k = 0; k < dataGridView1.Columns.Count; k++)

{

if (k > 0)

{

tempStr += "\t";

}

if (list.Contains(dataGridView1.Columns[k].HeaderText))

{

tempStr += "'";//加¨?'强?制?转áa义°?为a文?本à?

}

DataGridViewComboBoxCell cb = dataGridView1.Rows[j].Cells[k] as DataGridViewComboBoxCell;

if (cb == null)

{

tempStr +=

Convert.ToString(dataGridView1.Rows[j].Cells[k].Value);

}

else

{

tempStr += Convert.ToString(cb.FormattedValue);

}

}

sw.WriteLine(tempStr);

pb.Value = j + 1;

}

sw.Close();

myStream.Close();

pb.Visible = false;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "出?错?¨a信?息?é");

}

finally

{

sw.Close();

myStream.Close();

}

#endregion

MessageBox.Show("导ì?出?成¨|功|", "提?¨¢示o?");

}

}

}

相关主题
文本预览
相关文档 最新文档