找回密码
 立即注册

QQ登录

只需一步,快速开始

zhaoruiheng

论坛元老

10

主题

48

帖子

8296

积分

论坛元老

积分
8296

活字格认证

zhaoruiheng
论坛元老   /  发表于:2014-12-22 15:19  /   查看:10452  /  回复:9
导出的EXCEL,打印的时候如下图所示。如何设置才能使打印的行头、列头以及边框线去掉?

QQ截图20141222151826.jpg (35.65 KB, 下载次数: 623)

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-12-22 16:37:00
沙发
回复 1楼zhaoruiheng的帖子

和您确认下,需求是希望通过 Spread 导出到 Excel,再通过 Excel 打印对吗?
回复 使用道具 举报
zhaoruiheng
论坛元老   /  发表于:2014-12-22 16:41:00
板凳
回复 2楼iceman的帖子

对。但是导出的EXCEL打印的时候是默认包括行列头的,直接创建的EXCEL打印的时候不包含行列头。
回复 使用道具 举报
zhaoruiheng
论坛元老   /  发表于:2014-12-22 17:11:00
地板

导出默认选中“行号列标”

从程序中导出的EXCEL默认是选中“行号列标”的,把该项去掉就正确了。
1234.jpg (59.16 KB, 下载次数: 545)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-22 18:02:00
5#
回复 4楼zhaoruiheng的帖子

你好,

我对这个问题的理解是,有自定义的行头和列头导出到 Excel,效果为:
無題.png

希望控制的是不打印 Excel 的 行头列头而并非是导出的红色区域。
这个无法通过 Spread 产品控制,是 Excel 自动添加的内容。

谢谢
回复 使用道具 举报
zhaoruiheng
论坛元老   /  发表于:2014-12-23 08:09:00
6#
回复 5楼iceman的帖子

不是您说的这个区域,的确是EXCEL的“行号列标”区域,见4楼的图片,去掉这个选项以后就没问题了。
回复 使用道具 举报
zhaoruiheng
论坛元老   /  发表于:2014-12-23 09:17:00
7#
整个部分的原理是这样,由于通过farpoint for asp.net无法导出员工登记表的照片,因此我在后台通过farpoint for winform做了一个生成员工登记表的操作,然后将其中的内容全部导出到服务器上的临时文件夹中,提供下载。以下仅粘贴关键部分的代码:

1、调用生成winform员工登记表的代码
FormToStr fts = new FormToStr(jID, Convert.ToInt32(fID));
fts.DjbRep(500);//仅对前五百行按照条件生成数据。

2、构造方法
public FormToStr(string empId, int fileId)
        {
            string excelPath = AppDomain.CurrentDomain.BaseDirectory.Replace("\\", "/") + @"Temp/" + fileId + ".xls";
            SheetView sheet = new SheetView();
            fpspread.Sheets.Add(sheet);
            fpspread.ActiveSheet = sheet;
            fpspread.OpenExcel(excelPath);
            this.empID = new string[] { empId };//人员ID
            this.fileID = fileId;//表格ID
            this.strPath = @"Temp/" + fileId + "_" + GetRandomString() + ".xls";//生成的EXCEL文件的完整路径
        }

3、循环farpoint for winform控件的内容行列,根据其中的条件定义替换成相应的员工信息
public void DjbRep(int rowEnd)
        {
            for (int j = 0; j < rowEnd; j++)
            {//外层循环行
                for (int i = 0;
                    i < fpspread.ActiveSheet.Columns.Count;
                    i++)
                {
                    if (fpspread.ActiveSheet.Cells[j, i].Text.Contains("[") && fpspread.ActiveSheet.Cells[j, i].Text.Contains("]"))
                    {
                        Rep(j, i, empID[0]);
                    }
                }
            }
        }

4、Rep方法不再粘贴,仅仅是对每个单元格进行内容替换。

5、保存到服务器
public static string SaveEx(string strFileName)
{
            string fileName = AppDomain.CurrentDomain.BaseDirectory + strFileName;
            fpspread.Sheets[0].Protect = false;
            fpspread.SaveExcel(fileName, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed);//FarPoint.Excel.ExcelSaveFlags.NoFlagsSet);
            return fileName;
}
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-23 09:51:00
8#
回复 7楼zhaoruiheng的帖子

设置方法如下:

  1.             fpSpread1.ActiveSheet.PrintInfo.ShowColumnHeader =  FarPoint.Win.Spread.PrintHeader.Hide;
  2.             fpSpread1.ActiveSheet.PrintInfo.ShowRowHeader = FarPoint.Win.Spread.PrintHeader.Hide;
复制代码
回复 使用道具 举报
zhaoruiheng
论坛元老   /  发表于:2014-12-23 09:57:00
9#
回复 8楼iceman的帖子

试了下,的确是这样,非常感谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-12-23 10:45:00
10#
回复 9楼zhaoruiheng的帖子

客气了,本问题关闭了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部