以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]能不能用代码实现 导出excel的时候保持合并格式 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186279) |
-- 作者:81538475 -- 发布时间:2023/4/19 9:48:00 -- [求助]能不能用代码实现 导出excel的时候保持合并格式 如题 |
-- 作者:有点蓝 -- 发布时间:2023/4/19 9:52:00 -- http://www.foxtable.com/webhelp/topics/0559.htm |
-- 作者:81538475 -- 发布时间:2023/4/19 10:19:00 -- 因为我导出的时候希望导出 字典对应的数据,所以在代码上做了些调整,不是用saveexcel 导出的,帮忙看下是不是能够加合并格式导出呢 Dim t As Table = CurrentTable Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 Dim lms As new List(of String) Dim lmsc As new List(of String) Dim flg As New SaveExcelFlags \'flg.RowNumber = True flg.CellStyle = True For Each c As Col In t.Cols If c.Visible = True lms.Add(c.Name) lmsc.Add(c.Caption) End If Next For i As Integer = 0 To lms.Count-1 Sheet(0,i).Value = lmsc(i) Next For r As Integer = 0 To t.Rows.Count-1 \'填入数据 For i As Integer = 0 To lms.Count-1 try If lms(i).Contains("状态") Then Sheet(r+1,i).Value = t.Cols(lms(i)).DataMap(t.rows(r)(lms(i))) If Sheet(r+1,i).Value="" Then \'----如果datamap读取出来是空置则读取原始值 Sheet(r+1,i).Value = t.rows(r)(lms(i)) End If Else Sheet(r+1,i).Value = t.rows(r)(lms(i)) End If catch ex As Exception Sheet(r+1,i).Value = t.rows(r)(lms(i)) End try Next Next Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then Book.Save(dlg.FileName) Dim Proc As New Process Proc.File = dlg.FileName Proc.Start() End If [此贴子已经被作者于2023/4/19 10:18:55编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/4/19 10:25:00 -- http://www.foxtable.com/webhelp/topics/1153.htm |
-- 作者:81538475 -- 发布时间:2023/4/19 10:32:00 -- 我怎么判断在foxtable中已经合并了的起始位置呢 |
-- 作者:有点蓝 -- 发布时间:2023/4/19 10:39:00 -- 这个要自己去计算了,遍历的时候使用变量记录一下,比如第一行编号1,遍历到第7行,编号为2,和变量记录的1不同,那就说明第一行到第6行需要合并 |
-- 作者:81538475 -- 发布时间:2023/4/19 12:14:00 -- 有2个问题,1、如何设置合并后的字是上下居中的呢。2. 我如果要多次合并好像下面的代码是不能实现的 Sheet.MergeCell(1,0,11,0) Sheet.MergeCell(12,0,4,1) [此贴子已经被作者于2023/4/19 12:17:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/4/19 13:29:00 -- 1、http://www.foxtable.com/webhelp/topics/1161.htm 2、Sheet.MergeCell(1,0,11,1)
|
-- 作者:81538475 -- 发布时间:2023/4/19 23:52:00 -- 这样的话只有A被合并了。下面的B和C并没有合并 [此贴子已经被作者于2023/4/19 23:52:11编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/4/20 9:20:00 -- 代码? |