以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  EXCEL问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119767)

--  作者:wh123
--  发布时间:2018/5/31 16:12:00
--  EXCEL问题
我模版文件中有固定的格式和边框,导出时部分列需动态变化,然后设置其边框和打印区域,现在如果我导出的列过多,比模版文件中用框圈住的列多是就会报错,请问这是什么原因?
--  作者:有点甜
--  发布时间:2018/5/31 16:22:00
--  

报什么错?

 

做一个对应的例子发上来测试。

[此贴子已经被作者于2018/5/31 16:22:16编辑过]

--  作者:wh123
--  发布时间:2018/5/31 16:31:00
--  
             \'写入工资明细
                Dim fnt As new Font(sheet(7,4).Style.Font.Name,sheet(7,4).Style.Font.Size,FontStyle.Regular) \'设置内容字体
                Dim fnt1 As new font(sheet(30,4).Style.Font.Name,6,FontStyle.Regular) \'设置备注字体
                Dim fnt2 As new Font(sheet(7,4).Style.Font.Name,sheet(7,4).Style.Font.Size,FontStyle.bold) \'设置月份字体加粗加黑效果

                For i As Integer = 0 To Tables("工资核算_table5").Rows.Count-1
                    Dim r5 As Row = Tables("工资核算_table5").Rows(i)
                    sheet(7,4+3*i).Style.Font = fnt2
                    sheet(7,4+3*i).value = r5("月份") & "月"
                    
                    sheet(8,4+3*i).value = r5("实际出勤天数")
                    sheet.MergeCell(8,4+3*i,1,3)
                    sheet(8,4+3*i).Style.Font = fnt

                    sheet(9,4+3*i).value = r5("基本工资")
                    sheet.MergeCell(9,4+3*i,1,3)
                    sheet(9,4+3*i).Style.Font = fnt

                    sheet(10,4+3*i).value = r5("岗位津贴")
                    sheet.MergeCell(10,4+3*i,1,3)
                    sheet(10,4+3*i).Style.Font = fnt
                    sheet(11,4+3*i).value = r5("涉密津贴")
                    sheet.MergeCell(11,4+3*i,1,3)
                    sheet(11,4+3*i).Style.Font = fnt
                    sheet(12,4+3*i).value = r5("年工资")
                    sheet.MergeCell(12,4+3*i,1,3)
                    sheet(12,4+3*i).Style.Font = fnt
                    sheet(13,4+3*i).value = r5("全勤奖")
                    sheet.MergeCell(13,4+3*i,1,3)
                    sheet(13,4+3*i).Style.Font = fnt
                    sheet(16,4+3*i).value = r5("补款项目_加班费")
                    sheet.MergeCell(16,4+3*i,1,3)
                    sheet(16,4+3*i).Style.Font = fnt
                    sheet(17,4+3*i).value = r5("补款项目_电脑")
                    sheet.MergeCell(17,4+3*i,1,3)
                    sheet(17,4+3*i).Style.Font = fnt
                    sheet(18,4+3*i).value = r5("补款项目_其他津贴补贴")
                    sheet.MergeCell(18,4+3*i,1,3)
                    sheet(18,4+3*i).Style.Font = fnt
                    sheet(19,4+3*i).value = r5("补款项目_职称津贴")
                    sheet.MergeCell(19,4+3*i,1,3)
                    sheet(19,4+3*i).Style.Font = fnt
                    sheet(20,4+3*i).value = r5("补款项目_过节费")
                    sheet.MergeCell(20,4+3*i,1,3)
                    sheet(20,4+3*i).Style.Font = fnt
                    sheet(21,4+3*i).value = r5("补款项目_其他")
                    sheet.MergeCell(21,4+3*i,1,3)
                    sheet(21,4+3*i).Style.Font = fnt
                    sheet.MergeCell(22,4+3*i,1,3) \'离职补偿
                    sheet(22,4+3*i).Style.Font = fnt
                    sheet.MergeCell(23,4+3*i,1,3)
                    sheet(23,4+3*i).value = r5("扣款项目_社保")
                    sheet(23,4+3*i).Style.Font = fnt
                    sheet.MergeCell(24,4+3*i,1,3)
                    sheet(24,4+3*i).value = r5("扣款项目_住房公积金")
                    sheet(24,4+3*i).Style.Font = fnt
                    sheet.MergeCell(25,4+3*i,1,3)
                    sheet(25,4+3*i).value = r5("扣款项目_缺勤扣款")
                    sheet(25,4+3*i).Style.Font = fnt
                    sheet.MergeCell(26,4+3*i,1,3)
                    sheet(26,4+3*i).value = r5("扣款项目_迟到扣款")
                    sheet(26,4+3*i).Style.Font = fnt
                    sheet.MergeCell(27,4+3*i,1,3)
                    sheet(27,4+3*i).value = r5("扣款项目_其他")
                    sheet(27,4+3*i).Style.Font = fnt
                    sheet.MergeCell(28,4+3*i,1,3)
                    sheet(28,4+3*i).value = r5("个人所得税")
                    sheet(28,4+3*i).Style.Font = fnt
                    sheet.MergeCell(29,4+3*i,1,3)
                    sheet(29,4+3*i).value = r5("税后实发工资")
                    sheet(29,4+3*i).Style.Font = fnt
                    sheet.MergeCell(30,4+3*i,1,3)
                    sheet(30,4+3*i).value = r5("备注")
                    sheet(30,4+3*i).Style.Font = fnt1 \'备注字体与前面不一样
                    sheet(30,4+3*i).Style.WordWrap = True \'设置备注自动换行
                    \'加班时间
                    
                    sheet(14,4+3*i).value = "1.5倍"
                    sheet(14,4+3*i+1).value = "2倍"
                    sheet(14,4+3*i+2).value = "3倍"
                    sheet(15,4+3*i).value = r5("加班时间_一点五倍")
                    sheet(15,4+3*i).Style.Font = fnt
                    sheet(15,4+3*i+1).value = r5("加班时间_两倍")
                    sheet(15,4+3*i+1).Style.Font = fnt
                    sheet(15,4+3*i+2).value = r5("加班时间_三倍")
                    sheet(15,4+3*i+2).Style.Font = fnt
                    
                Next
                

--  作者:wh123
--  发布时间:2018/5/31 16:31:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:离职人员结算表.xls


--  作者:wh123
--  发布时间:2018/5/31 16:34:00
--  
这是模版文件和动态变化的部分代码,报错未将对象的引用设置到对象的实例,三个月以内的工资明细就可以,三个月以上就报错


--  作者:wh123
--  发布时间:2018/5/31 16:35:00
--  
还有我设置的其他字体都生效了但是加租的效果就是出不来
--  作者:wh123
--  发布时间:2018/5/31 16:39:00
--  
我测试过三个月以上数据前三次循环都可以执行,到第四次循环就会报错
--  作者:有点甜
--  发布时间:2018/5/31 16:46:00
--  

sheet(7,4+3*i).Style.Font = fnt2

 

这种代码修改一下,循环之前new出来

 

Dim Style As XLS.Style = Book.NewStyle() \'定义新样式

style.font = fnt2

 

在循环里面,直接赋值

 

sheet(7,4+3*i).Style = style