DataGridView 导出到Excel

#region 导出四个表格到Excel
/// <summary>
/// 导出四个表格到Excel
/// </summary>
/// <param name="dgvPaoDian"></param>
/// <param name="strPaoDian"></param>
/// <param name="dgvGJS"></param>
/// <param name="strGJS"></param>
/// <param name="dgvSHZDS"></param>
/// <param name="strSHZDS"></param>
/// <param name="dgvQYZDS"></param>
/// <param name="strQYZDS"></param>
/// <param name="FilePathName"></param>
/// <returns></returns>
public static bool MultiGvwToExcel(DataGridViewX dgvPaoDian, string strPaoDian, DataGridViewX dgvGJS, string strGJS, DataGridViewX dgvSHZDS, string strSHZDS, DataGridViewX dgvQYZDS, string strQYZDS, ref string FilePathName)
{
bool MyReturnValye = false;
if (dgvPaoDian.DataSource == null && dgvGJS.DataSource == null && dgvSHZDS.DataSource == null && dgvQYZDS.DataSource == null)
{
MyReturnValye = false;
//没有绑定任何数据源
}
else
{
string path;
SaveFileDialog savefile = new SaveFileDialog();
savefile.Filter = "Execl files(*.xls)|*.xls";
if (savefile.ShowDialog() == DialogResult.OK && savefile.FileName != "")
{
//获取保存路径
path = savefile.FileName;
Workbook wb = new Workbook();
wb.Worksheets.Add();
wb.Worksheets.Add();
wb.Worksheets.Add();
Worksheet ws = wb.Worksheets[0];
ws.Name = strPaoDian;
Worksheet ws1 = wb.Worksheets[1];
ws1.Name = strGJS;
Worksheet ws2 = wb.Worksheets[2];
ws2.Name = strSHZDS;
Worksheet ws3 = wb.Worksheets[3];
ws3.Name = strQYZDS;
Cells cell;
int i, j;

//设置风格

#region 第一个sheet
if (dgvPaoDian.DataSource != null)
{
if (dgvPaoDian.RowCount > 0)
{
cell = ws.Cells;
Style style1 = wb.Styles[wb.Styles.Add()];
style1.Font.Name = "宋体";
style1.Font.IsBold = false;//设置粗体
style1.Font.Size = 12;//设置字体大小
style1.HorizontalAlignment = TextAlignmentType.Center;

//设置标题
for (i = 0; i < dgvPaoDian.ColumnCount; i++)
{
cell[0, i].PutValue(dgvPaoDian.Columns[i].HeaderText.ToString());
cell[0, i].SetStyle(style1);
}
//设置内容
for (i = 0; i < dgvPaoDian.RowCount; i++)
{
for (j = 0; j < dgvPaoDian.ColumnCount; j++)
{
cell[i + 1, j].PutValue(dgvPaoDian.Rows[i].Cells[j].Value.ToString());
cell[i + 1, j].SetStyle(style1);
}
}

//设置列宽
for (i = 0; i < dgvPaoDian.ColumnCount; i++)
{
cell.SetColumnWidth(i, 14);
}
}
cell = null;
}
#endregion

#region 第二个sheet
if (dgvGJS.DataSource != null)
{
if (dgvGJS.RowCount > 0)
{
cell = ws1.Cells;
Style style1 = wb.Styles[wb.Styles.Add()];
style1.Font.Name = "宋体";
style1.Font.IsBold = false;//设置粗体
style1.Font.Size = 12;//设置字体大小
style1.HorizontalAlignment = TextAlignmentType.Center;

//设置标题
for (i = 0; i < dgvGJS.ColumnCount; i++)
{
cell[0, i].PutValue(dgvGJS.Columns[i].HeaderText.ToString());
cell[0, i].SetStyle(style1);
}
//设置内容
for (i = 0; i < dgvGJS.RowCount; i++)
{
for (j = 0; j < dgvGJS.ColumnCount; j++)
{
cell[i + 1, j].PutValue(dgvGJS.Rows[i].Cells[j].Value.ToString());
cell[i + 1, j].SetStyle(style1);
}
}
//设置列宽
for (i = 0; i < dgvGJS.ColumnCount; i++)
{
cell.SetColumnWidth(i, 14);
}
}
cell = null;
}
#endregion

#region 第三个sheet
if (dgvSHZDS.DataSource != null)
{
if (dgvSHZDS.RowCount > 0)
{
cell = ws2.Cells;
Style style1 = wb.Styles[wb.Styles.Add()];
style1.Font.Name = "宋体";
style1.Font.IsBold = false;//设置粗体
style1.Font.Size = 12;//设置字体大小
style1.HorizontalAlignment = TextAlignmentType.Center;

//设置标题
for (i = 0; i < dgvSHZDS.ColumnCount; i++)
{
cell[0, i].PutValue(dgvSHZDS.Columns[i].HeaderText.ToString());
cell[0, i].SetStyle(style1);
}
//设置内容
for (i = 0; i < dgvSHZDS.RowCount; i++)
{
for (j = 0; j < dgvSHZDS.ColumnCount; j++)
{
cell[i + 1, j].PutValue(dgvSHZDS.Rows[i].Cells[j].Value.ToString());
cell[i + 1, j].SetStyle(style1);
}
}
//设置列宽
for (i = 0; i < dgvSHZDS.ColumnCount; i++)
{
cell.SetColumnWidth(i, 14);
}
}
cell = null;
}
#endregion

#region 第四个sheet
if (dgvQYZDS.DataSource != null)
{
if (dgvQYZDS.RowCount > 0)
{
cell = ws3.Cells;
Style style1 = wb.Styles[wb.Styles.Add()];
style1.Font.Name = "宋体";
style1.Font.IsBold = false;//设置粗体
style1.Font.Size = 12;//设置字体大小
style1.HorizontalAlignment = TextAlignmentType.Center;

//设置标题
for (i = 0; i < dgvQYZDS.ColumnCount; i++)
{
cell[0, i].PutValue(dgvQYZDS.Columns[i].HeaderText.ToString());
cell[0, i].SetStyle(style1);
}
//设置内容
for (i = 0; i < dgvQYZDS.RowCount; i++)
{
for (j = 0; j < dgvQYZDS.ColumnCount; j++)
{
cell[i + 1, j].PutValue(dgvQYZDS.Rows[i].Cells[j].Value.ToString());
cell[i + 1, j].SetStyle(style1);
}
}
//设置列宽
for (i = 0; i < dgvQYZDS.ColumnCount; i++)
{
cell.SetColumnWidth(i, 14);
}
}
cell = null;
}
#endregion

wb.Save(path);
FilePathName = path;
MyReturnValye = true;
}
else
{
MyReturnValye = false;
}
}
return MyReturnValye;
}
#endregion

时间: 2024-07-30 16:17:58

DataGridView 导出到Excel的相关文章

.Net中DataGridview数据如何导出到excel表

首先,这个问题在网上有很多答案,也有很多解决的方法.其次,很多人写过类似的博客 .我的这篇博客,主要是写给那些刚刚接触或接触不久.NET并使用其做程序的人,更是写个自己,记录一下方法,方便以后使用. 在窗体中添加一个DataGridView控件,DatagridView获得数据: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0).{注意:通过查询数据库,将查询到的数据放入crList或D

用NPOI将DataGridView中需要的列导出为Excel

NPOI是什么? NPOI是POI的.Net版本,即"N"表示"Net".不论是NPOI还是POI,它们其实都是已经编写好的类库.类库大家并不陌生,我们在建立BLL层,DAL层,Facade层--,是不是都是在创建一个个类库啊.那么这个东西和它们差不多. NPOI干什么的? 提供对Microsoft Office格式的文档读和写的功能.也就是说不仅仅用于对Excel的读和写,还有Word,Power Point等. 为什么要用NPOI 大家可以自己查查NPOI的优势

NPOI DataGridView导出EXCEL

NPOI 官方网站 http://npoi.codeplex.com/ 加载NPOI.DLL ,引用这两个命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; #region NPOI DataGridView 导出 EXCEL /// <summary> /// NPOI DataGridView 导出 EXCEL /// </summary> /// <param name="fileName"

C#WinForm 直接导出DataGridView数据到Excel表格的二种方法对比

方法一.利用微软的excel 操作类 引用:using Excel = Microsoft.Office.Interop.Excel; 代码如下:         #region导出数据表:Excle (微软的excel 操作类)         ///<summary>         ///导出数据表:Excle         ///</summary>         ///<param name="myDGV"></param>

从DataGridView导出Excel

从DataGridView导出Excel的两种情况,不多说,直接记录代码. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Data; namespace cnblogs { public static class LoadExcel { public sta

将datagridview的结果导出到Excel

1 /// <summary> 2 /// 导出Excel 3 /// </summary> 4 /// <param name="sheetName">表名</param> 5 /// <param name="dgv">要导出的文件名称</param> 6 public void DataGridViewToExcel(string sheetName, DataGridView dgv)

Winform将DataGridView导出Excel,调用打印机打印DataGridView

DataGridView导出Excel (这个需要 Microsoft.Office.Interop.Excel.dll  在网上下载就可以) public static void ExportExcel(string fileName, DataGridView myDGV) { string saveFileName = ""; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = &qu

C#把DataGridVIew数据导出到Excel函数代码

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Office.Core; using EXCEL = Microsoft.Office.Interop.Excel; //数据库支持 us

DataGridView导出数据到Excel及单元格格式的改动

在软件开发过程中,时常会遇到把一些数据信息从DataGridView中导出到Excel表格中的情况.假设写的多了就会发现挺简单的,我们最好还是来写一写,留作备用,毕竟有时候Ctrl+C和Ctrl+V还是比較方便的. 思路非常easy.写一个Module,然后调用: Module代码例如以下: <span style="font-family:Times New Roman;font-size:18px;">'*********************************