以文本方式查看主题

-  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=82201)

--  作者:冰淇淋小子
--  发布时间:2016/3/13 16:18:00
--  关于excel如何才能导出自定义的样式
5如,我的内存如果是2g红色加粗,出厂日期有2008.2009.2010红色加粗。如果中心字段有离职,公共设施加不同的背景色。请问这个报表如何去做?
--  作者:sjx71
--  发布时间:2016/3/13 20:17:00
--  
http://www.foxtable.com/help/topics/1146.htm
--  作者:冰淇淋小子
--  发布时间:2016/3/13 21:29:00
--  
那excel编程的代码是放到哪里?我看帮助没有提到吗?


--  作者:sjx71
--  发布时间:2016/3/13 21:34:00
--  
可以做一个窗口,加一个按钮,在按钮的click 事件中写代码

也可以做菜单,比较麻烦点。

--  作者:冰淇淋小子
--  发布时间:2016/3/13 21:42:00
--  
明白了。


--  作者:冰淇淋小子
--  发布时间:2016/3/14 4:47:00
--  
我是新手,还能帮我写一下,条件是,如果如果中心是离职或者公共设施的自动加背景色。背景色我在自定义样式设置好了。如果内存,2g自动红色加粗。如果生产日期,包含2008.2 009.2010红色加粗,如果保修日期超过5年,包含5年的红色加粗。如果是否过保跟保修日期对比,如果超过当前日期算自动过保,过保颜色加粗。


这个条件在eexcel编程如何实现?

--  作者:冰淇淋小子
--  发布时间:2016/3/14 5:03:00
--  
我使用年限用的是双精度小数。扩张类型是时段,那我怎么在excsl把使用年限转换为某年某月
--  作者:大红袍
--  发布时间:2016/3/14 10:39:00
--  

 如果保存的是天数,那么直接除以365,除以12就是答案

 

Dim d As Double = 370
msgbox(d \\ 365)
msgbox((d Mod 365) \\ 12 + 1)


--  作者:冰淇淋小子
--  发布时间:2016/3/14 10:51:00
--  
导出excel是不是这样写:


Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.ForeColor = Color.Red
style.FontBold = True \'样式的背景颜色设为红色
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("内存") =  2G  Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("内存").Index).Style = Style \'设置折扣单元格的样式
    End If

Next

Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.BackColor = BackColor.Red
style.FontBold = True \'样式的背景颜色设为红色
Dim st As XLS.Style = Book.NewStyle \'日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length -1 
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
    If dt.Cols(nms(c)).IsDate Then \'如果是日期列
        Sheet.Cols(c).Style = st \'设置显示格式
    End If
Next
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("生产日期") =  2008,2009,2010  Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("生产日期").Index).Style = Style \'设置折扣单元格的样式
    End If

Next
Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.BackColor = BackColor.Red
style.FontBold = True \'样式的背景颜色设为红色
Dim st As XLS.Style = Book.NewStyle \'日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length -1 
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
    If dt.Cols(nms(c)).IsDate Then \'如果是日期列
        Sheet.Cols(c).Style = st \'设置显示格式
    End If
Next
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("保修日期") =  没过保, 过保 Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("保修日期").Index).Style = Style \'设置折扣单元格的样式
    End If

Next

Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.BackColor = BackColor.Plum
style.FontBold = True \'样式的背景颜色设为红色
Dim st As XLS.Style = Book.NewStyle \'日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length -1 
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
    If dt.Cols(nms(c)).IsDate Then \'如果是日期列
        Sheet.Cols(c).Style = st \'设置显示格式
    End If
Next
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("保修日期") =  没过保, 过保 Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("保修日期").Index).Style = Style \'设置折扣单元格的样式
 else If dt.rows(r)("保修日期") =  没过保, 过保 Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("保修日期").Index).Style = Style \'设置折扣单元格的样式
    End If

Next

Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.BackColor = BackColor.Plum
style.FontBold = True \'样式的背景颜色设为红色
Dim st As XLS.Style = Book.NewStyle \'日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length -1 
    Sheet(0, c).Value = caps(c) \'指定列标题
    Sheet.Cols(c).Width = szs(c) \'指定列宽
    If dt.Cols(nms(c)).IsDate Then \'如果是日期列
        Sheet.Cols(c).Style = st \'设置显示格式
    End If
Next
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("公共设施") =  公共设施 Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("公共设施").Index).Style = Style \'设置折扣单元格的样式
else
      If dt.rows(r)("使用年限") =  date.today Then
      Dim d As Double = 370
msgbox(d \\ 365)
msgbox((d Mod 365) \\ 12 + 1)
    End If

Next


   
这样写吗??


--  作者:大红袍
--  发布时间:2016/3/14 17:26:00
--  

类似这样写,设置样式,修改值的,直接添加在红色代码的后面即可

 

Dim dt As Table = Tables("南京徳亨文生物科技有限公司设备一览表")
Dim Book As New XLS.Book \'定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle \'新建一个样式
Style.ForeColor = Color.Red
style.FontBold = True \'样式的背景颜色设为红色
For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If dt.rows(r)("内存") =  "2G"  Then \'如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("内存").Index).Style = Style \'设置折扣单元格的样式
    End If


Next

[此贴子已经被作者于2016/3/14 17:28:12编辑过]