以文本方式查看主题 - 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=137554) |
||||
-- 作者:teng0731 -- 发布时间:2019/7/9 15:20:00 -- [求助]关于excel多行标题栏的处理 [求助]关于excel多行标题栏的处理,2007版excel标题有两行,需要将其处理为一行的标题,详见附件表格。求处理实例。
|
||||
-- 作者:有点蓝 -- 发布时间:2019/7/9 16:12:00 -- 如果是从Foxtable导出的,可以在导出前关闭多行标题效果再导出即可:http://www.foxtable.com/webhelp/topics/2373.htm、http://www.foxtable.com/webhelp/topics/1992.htm 如果要直接改execl,参考: Dim Book As New XLS.Book("E:\\问题\\工作簿1.xlsx") Dim Sheet As XLS.Sheet = Book.Sheets(0) \'Sheet.ClearMergedCells Dim d As String For c As Integer = 0 To Sheet.Cols.Count -1 \'添加列标题 If Sheet(0, c).Value > "" Then d = Sheet(0, c).Value End If If Sheet(1, c).Value > "" Then Sheet(2, c).Value = d & "_" & Sheet(1, c).Value Else Sheet(2, c).Value = Sheet(0, c).Value End If Next Book.Save("E:\\问题\\工作簿2.xlsx") Dim Proc As New Process Proc.File = "E:\\问题\\工作簿2.xlsx" Proc.Start() |
||||
-- 作者:teng0731 -- 发布时间:2019/7/9 17:25:00 -- 谢谢有点蓝老师,是第二种方式,上面代码完美实现。 |
||||
-- 作者:teng0731 -- 发布时间:2019/7/9 17:37:00 -- 完善了一下代码,新生成标题行以后,将原来的标题行删除掉,形成新的正式表格: Dim Book As New XLS.Book("c:\\工作簿1.xlsx") Dim Sheet As XLS.Sheet = Book.Sheets(0) \'Sheet.ClearMergedCells Sheet.Rows.Insert(2) Dim d As String For c As Integer = 0 To Sheet.Cols.Count -1 \'添加列标题 If Sheet(0, c).Value > "" Then d = Sheet(0, c).Value End If If Sheet(1, c).Value > "" Then Sheet(2, c).Value = d & "_" & Sheet(1, c).Value Else Sheet(2, c).Value = Sheet(0, c).Value End If Next Sheet.Rows.RemoveAt(1) Sheet.Rows.RemoveAt(0) Book.Save("c:\\工作簿2.xlsx") Dim Proc As New Process Proc.File = "c:\\工作簿2.xlsx" Proc.Start() [此贴子已经被作者于2019/7/9 17:37:56编辑过]
|