DataGridView选中单元格数据复制到Excel

这里只写方法,基本思路就是先将DataGridView选中单元格数据复制到剪切版中,然后再创建Excel对象等,再将剪切版中的内容复制到Excel中。注意在创建Excel对象时,一定要将Microsoft.Office.Interop.Excel引用到项目中。不多说了,直接上代码。

 /// <summary>
/// DataGridView控件选中数据保存到Excel
/// </summary>
/// <param name="ExportDgv"></param>
/// <param name="DgvTitle"></param>
/// <returns></returns>
public bool CopyToExcel(DataGridView ExportDgv, string DgvTitle)
{
try
{
if (ExportDgv == null)
{
return false;
}

if (ExportDgv.Columns.Count == 0 || ExportDgv.Rows.Count == 0)
{
return false;
}

//Excel2003最大行是65535 ,最大列是255
//Excel2007最大行是1048576,最大列是16384
//if (ExportDgv.RowCount > 65536 || ExportDgv.ColumnCount > 256)
//{
// return false;
//}

ExportDgv.Focus();

//复制数据到Clipboard
int I = ExportDgv.GetCellCount(DataGridViewElementStates.Selected);
if (I > 0)
{
Clipboard.SetDataObject(ExportDgv.GetClipboardContent());
}

//创建Excel对象
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
return false;
}
//创建Excel工作薄
Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
//创建Excel工作表
Microsoft.Office.Interop.Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];//第1个工作表
//粘贴数据
xlSheet.get_Range("A1", System.Type.Missing).PasteSpecial(XlPasteType.xlPasteAll,
XlPasteSpecialOperation.xlPasteSpecialOperationNone,
System.Type.Missing, System.Type.Missing);

//显示工作薄区间
xlApp.Visible = true;
xlApp.Caption = DgvTitle;
//设置文本表格的属性
xlApp.Cells.EntireColumn.AutoFit();//自动列宽
xlApp.Cells.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
xlApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlLeft;
xlApp.ErrorCheckingOptions.BackgroundChecking = false;
return true;

}
catch
{
return false;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值