把datagridview的数据输出为Excel,Word的二种应用
来源:互联网 发布:加工中心g76编程实例 编辑:程序博客网 时间:2024/05/20 18:44
public static void ExportData(DataGridView srcDgv,string fileName)//导出数据,传入一个datagridview和一个文件路径
{
string type = fileName.Substring(fileName.IndexOf(".")+1);//获得数据类型
if (type.Equals("xls",StringComparison.CurrentCultureIgnoreCase))//Excel文档
{
Excel.Application excel = new Excel.Application();
try
{
excel.DisplayAlerts = false;
excel.Workbooks.Add(true);
excel.Visible = false;
for (int i = 0; i < srcDgv.Columns.Count; i++)//设置标题
{
excel.Cells[2, i+1] = srcDgv.Columns[i].HeaderText;
}
for (int i = 0; i < srcDgv.Rows.Count; i++)//填充数据
{
for (int j = 0; j < srcDgv.Columns.Count; j++)
{
excel.Cells[i + 3, j + 1] = srcDgv[j, i].Value;
}
}
excel.Workbooks[1].SaveCopyAs(fileName);//保存
}
finally
{
excel.Quit();
}
return;
}
//保存Word文件
if (type.Equals("doc", StringComparison.CurrentCultureIgnoreCase))
{
object path = fileName;
Object none=System.Reflection.Missing.Value;
Word.Application wordApp = new Word.Application();
Word.Document document = wordApp.Documents.Add(ref none, ref none, ref none, ref none);
//建立表格
Word.Table table= document.Tables.Add(document.Paragraphs.Last.Range, srcDgv.Rows.Count+1, srcDgv.Columns.Count, ref none, ref none);
try
{
for (int i = 0; i < srcDgv.Columns.Count; i++)//设置标题
{
table.Cell(1, i + 1).Range.Text = srcDgv.Columns[i].HeaderText;
}
for (int i = 0; i < srcDgv.Rows.Count; i++)//填充数据
{
for (int j = 0; j < srcDgv.Columns.Count; j++)
{
table.Cell(i + 2, j + 1).Range.Text = srcDgv[j, i].Value.ToString();
}
}
document.SaveAs(ref path, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none);
document.Close(ref none, ref none, ref none);
}
finally
{
wordApp.Quit(ref none, ref none, ref none);
}
}
}
/// 将DataGrid中的数据导入Excel中,并显示Excel应用程序,
/// 注意调用该方法必须有安装Excel 2000应用程序,并且假定DataGrid中绑定的是一DataSet
/// </summary>
/// <param name="grid"></param>
/// <param name="ReportTitle"></param>
public static void ExportDataGridToExcel(DataGrid grid,string ReportTitle)
{
DataTable myTable = ((DataSet)grid.DataSource).Tables[0];
try
{
Excel.Application xlApp = new Excel.ApplicationClass();
int rowIndex;
int colIndex;
rowIndex = 2;
colIndex = 0;
Excel.Workbook xlBook =xlApp.Workbooks.Add(true);
if (grid.TableStyles.Count >0 )
{
Excel.Range range = xlApp.get_Range(xlApp.Cells[1,1],xlApp.Cells[1,grid.TableStyles[0].GridColumnStyles.Count]);
range.MergeCells = true;
xlApp.ActiveCell.FormulaR1C1 = ReportTitle;
xlApp.ActiveCell.Font.Size = 18;
xlApp.ActiveCell.Font.Bold = true;
foreach(DataGridColumnStyle colu in grid.TableStyles[0].GridColumnStyles)
{
colIndex=colIndex +1;
xlApp.Cells[2,colIndex] = colu.HeaderText ;
}
//得到的表所有行,赋值给单元格
for (int row = 0;row < myTable.Rows.Count;row++)
{
rowIndex = rowIndex + 1;
colIndex = 0;
for (int col=0;col<grid.TableStyles[0].GridColumnStyles.Count;col++)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = grid[row,col].Tostring();
}
}
}
else
{
Excel.Range range = xlApp.get_Range(xlApp.Cells[1,1],xlApp.Cells[1,myTable.Columns.Count]);
range.MergeCells = true;
xlApp.ActiveCell.FormulaR1C1 = ReportTitle;
xlApp.ActiveCell.Font.Size = 18;
xlApp.ActiveCell.Font.Bold = true;
//将表中的栏位名称填到Excel的第一行
foreach(DataColumn Col in myTable.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[2, colIndex] = Col.ColumnName;
}
//得到的表所有行,赋值给单元格
for (int row = 0;row < myTable.Rows.Count;row++)
{
rowIndex = rowIndex + 1;
colIndex = 0;
for (int col=0;col<myTable.Columns.Count;col++)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = grid[row,col].Tostring();
}
}
}
xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[2, colIndex]).Font.Bold = true;
xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 1;
xlApp.Cells.EntireColumn.AutoFit();
xlApp.Cells.VerticalAlignment = Excel.Constants.xlCenter ;
xlApp.Cells.HorizontalAlignment = Excel.Constants.xlCenter ;
xlApp.Visible = true;
}
catch(Exception e)
{
throw e;
}
}
- 把datagridview的数据输出为Excel,Word的二种应用
- 把datagridview的数据输出为Excel,Word的二种应用
- 把datagridview的数据输出为Excel,Word的简单应用
- U6数据导出工具项目总结二 两种常见的DataGridView输出到EXCEL方法
- 把WinForm的DataGridView的数据导出到Excel
- C#把DataSet内数据转化为Excel和Word文件的通用类
- C#把DataSet内数据转化为Excel和Word文件的通用类
- C#将DataGridView中的数据保存为EXCEL的方法
- .net中将DataGridView内的数据导出为Excel表格
- 把DataGridView的结果传入Excel
- 数据输出到WORD文件或EXCEL文件的路
- 把GridView的列表数据导出为Word表格文件
- C#WinForm 直接导出DataGridView数据到Excel表格的二种方法对比
- DataGridView数据导出为Excel
- DataGridView 数据导出为EXCEL
- 将数据导出为Excel或Word的公共类!
- 将数据导出为Excel或Word的公共类!
- C# datagridview 转换为 word excel
- 最详细的 VSS 2005 使用手册——客户端设置
- 数据库记录分页显示的类
- net制作安装程序总结(WinForm,WebForm) 整理
- Irrlicht引擎詳解
- C++项目
- 把datagridview的数据输出为Excel,Word的二种应用
- VSS使用手册
- vs2003提示:试图运行项目时出错:无法在WEB服务器上启动调试.未能启动ASP.NET或ATL SERVER 调试
- 彻底搞定C指针-指向另一指针的指针
- .net 实现得到文件夹中的图片文件
- 美军B-1远程战略轰炸机在卡塔尔基地坠毁(图)
- 字符指针和字符数组
- UML类图关系详解
- 一个IP建多个Web站点--主机头名法