您的位置:首页 > 编程语言 > C#

Csharp windowform datagridview TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據

2011-10-13 13:03 417 查看
from http://www.codeproject.com/KB/office/DataGridViewCopyPaste.aspx
/// <summary>
/// 分行顯示顏色
/// 塗聚文 2011-10-13
/// 締友計算機信息技術有限公司
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
//分行顯示顏色
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (i % 2 == 0)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightPink;
}
}
}
/// <summary>
/// 保存dataGridView所有記錄
/// 塗聚文 2011-10-13
/// 締友計算機信息技術有限公司
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bindingNavigatoSaveNewItem_Click(object sender, EventArgs e)
{
int cum = 0;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
administrativeAreaListInfo.AreaCode = dataGridView1[0, i].Value.ToString();
administrativeAreaListInfo.AreaName = dataGridView1[1, i].Value.ToString();
administrativeAreaListInfo.AreaParentID = int.Parse(dataGridView1[2, i].Value.ToString());
int k = administrativeAreaListBLL.InsertAdministrativeAreaList(administrativeAreaListInfo);
if (k >= 1)
{
//MessageBox.Show("oK");
//this.DialogResult = DialogResult.OK;
cum = cum + 1;
}
else
{
this.DialogResult = DialogResult.Cancel;

}
}
DialogResult dresult = MessageBox.Show("添加:" + cum.ToString() + "條記錄!","信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (dresult == DialogResult.OK)
{
this.Close();
this.DialogResult = DialogResult.OK;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
// 设定单元格的默认值
e.Row.Cells["AreaParentID"].Value = AreaParentID;
e.Row.Cells["AreaParentName"].Value = AreaParentName;
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if ((e.Control && e.KeyCode == Keys.Delete) || (e.Shift && e.KeyCode == Keys.Delete))
{
CopyClipboard();
}
if ((e.Control && e.KeyCode == Keys.Insert) || (e.Shift && e.KeyCode == Keys.Insert))
{
PasteClipboard();
}

}
/// <summary>
/// 復制
/// </summary>
private void CopyClipboard()
{
DataObject d = dataGridView1.GetClipboardContent();
Clipboard.SetDataObject(d);
}

/// <summary>
/// 粘貼
/// </summary>
private void PasteClipboard()
{
try
{
string s = Clipboard.GetText();
string[] lines = s.Split('\n');
int iFail = 0, iRow = dataGridView1.CurrentCell.RowIndex;
int iCol = dataGridView1.CurrentCell.ColumnIndex;
DataGridViewCell oCell;
foreach (string line in lines)
{
if (iRow < dataGridView1.RowCount && line.Length > 0)
{
string[] sCells = line.Split('\t');
for (int i = 0; i < sCells.GetLength(0); ++i)
{
if (iCol + i < this.dataGridView1.ColumnCount)
{
oCell = dataGridView1[iCol + i, iRow];
if (!oCell.ReadOnly)
{
if (oCell.Value.ToString() != sCells[i])
{
oCell.Value = Convert.ChangeType(sCells[i], oCell.ValueType);
oCell.Style.BackColor = Color.Tomato;
}
else
iFail++;//
}
}
else
{ break; }
}
iRow++;
}
else
{ break; }
if (iFail > 0)
MessageBox.Show(string.Format("{0} 更新失敗,因為只讀設置列", iFail));
}
}
catch (FormatException)
{
MessageBox.Show("您粘貼錯誤的數據格式為單元格");
return;
}
}
/// <summary>
/// 復制到EXCEL
/// 塗聚文 2011-10-13
/// 締友計算機信息技術有限公司
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
CopyClipboard();
}
/// <summary>
/// 從EXCEL粘貼
/// 塗聚文 2011-10-13
/// 締友計算機信息技術有限公司
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pasteCtrlVToolStripMenuItem_Click(object sender, EventArgs e)
{
PasteClipboard();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: