将DataTable 导入Excel并打印

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;



namespace Personal

{

    public class Print

    {

        /// <summary>

        /// 将DataTabl内容打印出来

        /// Table 表, strHead 表名,Zoom 缩放比%

        /// </summary>

        private void baobiao(DataTable Table, string strHead, sbyte Zoom)

        {

            try

            {



                Excel.Application excelKccx = new Excel.Application();     //创建excel对象

                Excel._Workbook xBk;

                Excel._Worksheet xSt;

                xBk = excelKccx.Workbooks.Add(true);

                xSt = (Excel._Worksheet)xBk.ActiveSheet;

                Excel.Range range = xSt.get_Range(excelKccx.Cells[1, 1], excelKccx.Cells[1, 22]);

                range.ClearContents();//先把Range内容清除,合并才不会出错

                range.MergeCells = true;

                range.Value2 = strHead;//"普通医保住院定额超支管理报表(一般住院)";

                range.Font.Bold = true;

                range.Font.Size = 15;

                range.Font.ColorIndex = 4;//颜色

                range.HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter; //设置标题格式为居中对齐 

              //  设置表头 

                int row = 2;

                for (int i = 0; i < Table.Columns.Count; i++)//取字段名

                {

                    excelKccx.Cells[row, i + 1] = Table.Columns[i].ColumnName.ToString();

                    xSt.get_Range(excelKccx.Cells[row, i + 1], excelKccx.Cells[row, i + 1]).Interior.ColorIndex = 5;

                }



                xSt.get_Range(excelKccx.Cells[row, 1], excelKccx.Cells[row, Table.Columns.Count]).EntireColumn.AutoFit();//自动调整列宽

                xSt.get_Range(excelKccx.Cells[row, 1], excelKccx.Cells[row, Table.Columns.Count]).Font.Bold = true;



                for (int i = 0; i < Table.Rows.Count; i++)//取记录值

                {

                    row++;

                    for (int j = 0; j < Table.Columns.Count; j++)

                    {

                        excelKccx.Cells[row, j + 1] = Table.Rows[i][j].ToString();

                    }

                }





                excelKccx.Visible = true;

                object oMissing = System.Reflection.Missing.Value;

                xSt.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA3;//设置纸张大小

                xSt.PageSetup.Zoom = Zoom; //缩放比例

                xSt.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;//横向打印    xlPortrait1-纵向,2-横向;  

                xSt.PrintOut(oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);



                xBk.PrintOut(oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); // 打印:

               // xBk.PrintPreview(oMissing);//打印预览

                xBk.Close(null, null, null);



                excelKccx.Workbooks.Close();

                excelKccx.Application.Quit();

                excelKccx.Quit();



                System.Runtime.InteropServices.Marshal.ReleaseComObject(excelKccx);   

                GC.Collect();//强行销毁

            }

            catch

            {

                GC.Collect();//强行销毁

            };



        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值