有3种方法:第一、使用printdocument把datagrid中的数据逐行读出,然后写入printdocument中,在写入是根据格式要求在代码中为printdocutment的内容排版,这中方法比较麻烦 但自己可以控制的东西最多~
第二、导出到Excel中去打印~ 方法也是把datagrid中的数据逐行读出,然后写入到Excel中的某个sheet中~ 然后利用Excel本身的打印设置及打印预览功能~
第三、用水晶报表~ 本人觉得水晶报表的打印预览刷新得太差~ 上下滚动时经常花屏~
第二、导出到Excel中去打印~ 方法也是把datagrid中的数据逐行读出,然后写入到Excel中的某个sheet中~ 然后利用Excel本身的打印设置及打印预览功能~
第三、用水晶报表~ 本人觉得水晶报表的打印预览刷新得太差~ 上下滚动时经常花屏~
解决方案 »
- asp.net C# 保存字符串 加号不翼而飞..................................................求解
- winform combox 下拉框问题
- 如何设置打印机的属性?
- 如何强制结束进程,操作系统是否回收使用的内存
- winform打开一个新窗口本身窗口关闭的代码怎样写啊?
- 我添加的datagrid为什么其中的数据不能修改?
- 我快不行了,大家给我点希望吧~~~~
- 我上传图片到硬盘的文件夹里,当不小心上传了相同名称的图片,此时怎么能该图片正确的存放?就是同名的问题!请提供代码,谢谢
- 求助,关于在C#上显示曲线图的问题!
- VS 添加数据库文件提示不支持用户实例登录,数据库版本是企业版
- 关于sqlDataAdapter问题,送分!
- 要跟朋友合資開公司了,各位給我點建議(5貼500分相送)
{
Excel._Application excel=new Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);
Excel.Worksheet curSheet=(Excel.Worksheet)excel.ActiveSheet;
curSheet.Cells[2,1]="摘要";
curSheet.Cells[2,2]="物料";
curSheet.Cells[2,3]="数量(吨)";
curSheet.Cells[2,4]="参考价(元/吨)";
curSheet.Cells[2,5]="金额(元)";
curSheet.Cells[2,6]="单价(元/吨)";
curSheet.Cells[2,7]="实收金额(元)";
curSheet.PageSetup.PrintGridlines=true;
int startRow=2;
if(this.cmgDetail.Count!=0)
{
startRow++;
for(int i=0;i<this.cmgDetail.Count;i++)
{
this.cmgDetail.Position=i;
BillDataSet.AccountBookItemRow curDetailRow= ((MIS.WinUI.Purchase.BillDataSet.AccountBookItemRow)
((DataRowView)this.cmgDetail.Current).Row);
}
curSheet.Cells[startRow,MATERIALCOL+1]=curDetailRow.GoodsList.ToString();
curSheet.Cells[startRow,AMOUNTCOL+1]=curDetailRow.Amount.ToString();
curSheet.Cells[startRow,PRICECOL+1]=curDetailRow.Price.ToString();
curSheet.Cells[startRow,REFMONEYCOL+1]=curDetailRow.RefMoney.ToString();
curSheet.Cells[startRow,REALPRICECOL+1]=curDetailRow.RealPrice.ToString();
curSheet.Cells[startRow,MONEYCOL+1]=curDetailRow.Money.ToString();
startRow++;
}
}
curSheet.Columns.AutoFit();
excel.Visible=true;
}