马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C#winform打印预览

  [复制链接]
查看4961 | 回复4 | 2018-4-17 09:43:00 | 显示全部楼层 |阅读模式
刚刚做了一个winform的打印预览功能,用的是Micorsoft.Office.Interop.Excel。打印预览的时候显示不全。有11列,预览的时候只有10列。不知道怎么回事。求助各位大神一下。以下是代码
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                if (xlApp == null)
                {
                    MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");

                }
                bool fileSaved = false;
                string strpath = Application.StartupPath + "\\template\\Test.xlsx";
                Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(strpath); //加载模板
                Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
                Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄

                //var mark = new JObject { { "序号", "1" }, { "所属科室", "一级库" },{ "注册证产品名", "止血器" },
                //    { "简称", "止血器" }, { "规格", "Z6" }, { "包装单位", "一级库" },{ "单位数量", "止血器" },
                //    { "总数量", "6" }, { "失效日期", "2019-09-01" },{ "注册证号", "国械注进20173770210" },{ "注册证有效期", "2020-08-20" }};
                string str = "{\"id\":1,\"Suoshu\":\"一级库\",\"ReditName\":\"止血器\",\"Name\":\"止血器\",\"Guige\":\"Z6\",\"Company\":\"一级库\",\"Count\":\"9\",\"Sum\":\"5\",\"sDate\":\"2019-09-01\",\"IDhao\":\"国械注进20173770210\",\"yDate\":\"2019-09-01\"}";

                YLHCMessage ylhc = JsonConvert.DeserializeObject<YLHCMessage>(str);

                worksheet.Cells[4, 1] = ylhc.id.ToString();
                worksheet.Cells[4, 2] = ylhc.Suoshu.ToString();
                worksheet.Cells[4, 3] = ylhc.ReditName.ToString();
                worksheet.Cells[4, 4] = ylhc.Name.ToString();
                worksheet.Cells[4, 5] = ylhc.Guige.ToString();
                worksheet.Cells[4, 6] = ylhc.Company.ToString();
                worksheet.Cells[4, 7] = ylhc.Count;
                worksheet.Cells[4, 8] = ylhc.Sum;
                worksheet.Cells[4, 9] = Convert.ToDateTime(ylhc.sDate.ToString());
                worksheet.Cells[4, 10] = ylhc.IDhao.ToString();
                worksheet.Cells[4, 11] = Convert.ToDateTime(ylhc.yDate.ToString());

                string savaPath = @"C:\Users\dell、\Desktop_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
                workbook.SaveAs(savaPath);
                workbooks.Open(savaPath);
                xlApp.Visible = true;
                workbook.PrintPreview();
                workbook.Save();
                xlApp.Quit();

                workbooks.Close();

xiaowei | 2018-4-17 09:43:32 | 显示全部楼层
自己先顶下
ibcadmin | 2018-4-17 14:28:25 | 显示全部楼层
123123123.png




我用你的代码打印出来就是11列,看看是不是你的模板文件有问题。
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
xiaowei | 2018-4-18 09:45:23 | 显示全部楼层
ibcadmin 发表于 2018-4-17 14:28
我用你的代码打印出来就是11列,看看是不是你的模板文件有问题。

嗯,打印出来是11列。就是预览的时候看的是10列。然后我昨天改了下模板的页边距。预览就没问题了
ibcadmin | 2018-4-18 11:07:12 | 显示全部楼层
xiaowei 发表于 2018-4-18 09:45
嗯,打印出来是11列。就是预览的时候看的是10列。然后我昨天改了下模板的页边距。预览就没问题了

恩 模板问题
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则