以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  在打开工作簿之前,改日期格式?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=148224)

--  作者:fengwenliuyan
--  发布时间:2020/4/2 16:41:00
--  在打开工作簿之前,改日期格式?

在打开工作簿之前,改日期格式?
但是,试过插在哪一行都不对???
以下是问题代码:

Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim nms As New List(of String)
For i As Integer = 0 To ckl.Items.count - 1 \'获取已经勾选的列
    If ckl.GetItemChecked(i) Then
        nms.Add(ckl.Items(i))
    End If
Next
If nms.Count = 0 Then
    MessageBox.Show("至少要选择一列","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If 

\'生成Excel表
Dim dt As Table = Tables("意和表窗口_意和表")
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)

For i As Integer = 0 To nms.count -1
    Sheet(0, i).Value = nms(i)
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For i As Integer = 0 To nms.count -1
        Sheet(r + 1, i).Value = dt.rows(r)(nms(i))
    Next
Next 

\'保存并打开excel文件
Book.Save("D:\\项目\\cs005\\test.xls")

Dim St2 As XLS.Style = Book.NewStyle
St2.Format = "yyyy-MM-dd"
Sheet.Cols(dt.Cols("出库日期").Index).Style = st2

Dim Proc As New Process
Proc.File = "D:\\项目\\cs005\\test.xls"
Proc.Start()

--  作者:有点酸
--  发布时间:2020/4/2 17:07:00
--  
很明显,你是选择部分列导出的,那么foxtable中出库日期列的位置,和导出的excel文件中的日期列位置一样吗? 不同的话,怎么能用dt.Cols("出库日期").Index呢?
[此贴子已经被作者于2020/4/2 17:07:19编辑过]

--  作者:有点酸
--  发布时间:2020/4/2 17:10:00
--  
作为8年的老用户,这种问题不应该有的。

Sheet.Cols(dt.Cols("出库日期").Index).Style = st2

改为:

For i As Integer = 0 To nms.count -1
    If Sheet(0, i).Text = “出库日期” Then
             Sheet.Cols(i).Style = st2
    End If
Next
[此贴子已经被作者于2020/4/2 17:10:53编辑过]

--  作者:fengwenliuyan
--  发布时间:2020/4/2 17:25:00
--  回复:(有点酸)作为8年的老用户,这种问题不应该有的...
可以了,谢谢老师!