利用GemBox.ExcelLite.dll导出到Excel(脱离Excel环境)
利用GemBox.ExcelLite.dll脱离Excel环境,把DataGridView数据导出到Excel文件。
public void DataGridView2Excel_GemBox(DataGridView dgv)
{
#region 导出前判断
//行数必须大于0
if (dgv.Rows.Count <= 0)
{
MessageBox.Show("没有数据可供导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
//列数必须大于0
if(dgv.Columns.Count<=0)
{
MessageBox.Show("没有数据可供导出!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//行数不可以大于65536
if(dgv.Rows.Count>65536)
{
MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//列数不可以大于256
if(dgv.Columns.Count>256)
{
MessageBox.Show("数据记录数太多(最多不能超过256列),不能保存!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
#endregion
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Excel files (*.xls)|*.xls";
dlg.FilterIndex = 0;
dlg.RestoreDirectory = true;
dlg.CreatePrompt = false;
dlg.Title = "导出为Excel文件";
if (dlg.ShowDialog() == DialogResult.OK)
{
ExcelFile excelFile = new ExcelFile();
ExcelWorksheet sheet = excelFile.Worksheets.Add("Account");
try
{
//向Excel中写入表格的表头
for (int i = 0; i < dgv.Columns.Count; i++)
{
sheet.Cells[0, i].Value = dgv.Columns[i].HeaderText;
}
//向Excel中写入表格的数据
for (int i = 0; i < dgv.Rows.Count; i++)
{
DataGridViewRow row = dgv.Rows[i];
for (int j = 0; j < row.Cells.Count; j++)
{
sheet.Cells[i + 1, j].Value = row.Cells[j].Value;
}
}
excelFile.SaveXls(dlg.FileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
MessageBox.Show(dlg.FileName + "\n\n导出完毕!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
{
#region 导出前判断
//行数必须大于0
if (dgv.Rows.Count <= 0)
{
MessageBox.Show("没有数据可供导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
//列数必须大于0
if(dgv.Columns.Count<=0)
{
MessageBox.Show("没有数据可供导出!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//行数不可以大于65536
if(dgv.Rows.Count>65536)
{
MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//列数不可以大于256
if(dgv.Columns.Count>256)
{
MessageBox.Show("数据记录数太多(最多不能超过256列),不能保存!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
#endregion
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Excel files (*.xls)|*.xls";
dlg.FilterIndex = 0;
dlg.RestoreDirectory = true;
dlg.CreatePrompt = false;
dlg.Title = "导出为Excel文件";
if (dlg.ShowDialog() == DialogResult.OK)
{
ExcelFile excelFile = new ExcelFile();
ExcelWorksheet sheet = excelFile.Worksheets.Add("Account");
try
{
//向Excel中写入表格的表头
for (int i = 0; i < dgv.Columns.Count; i++)
{
sheet.Cells[0, i].Value = dgv.Columns[i].HeaderText;
}
//向Excel中写入表格的数据
for (int i = 0; i < dgv.Rows.Count; i++)
{
DataGridViewRow row = dgv.Rows[i];
for (int j = 0; j < row.Cells.Count; j++)
{
sheet.Cells[i + 1, j].Value = row.Cells[j].Value;
}
}
excelFile.SaveXls(dlg.FileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
MessageBox.Show(dlg.FileName + "\n\n导出完毕!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
浙公网安备 33010602011771号