当前位置:编程学习 > C#/ASP.NET >>

哪位兄弟知道怎么从asp.net输出word表格啊,表格样式怎么控制啊?,先谢谢了!

哪位兄弟知道怎么从asp.net输出word表格啊,表格样式怎么控制啊?,先谢谢了! --------------------编程问答-------------------- 当初要实现这种外观样式着实费了很大功夫

最后确定用div嵌套实现 --------------------编程问答-------------------- 试试这个
Private Function CreaTable() As DataTable 
Dim dt As New DataTable() 
dt.Columns.Add("列1", GetType(String)) 
dt.Columns.Add("列2", GetType(Integer)) 
dt.Columns.Add("列3", GetType(String)) 
dt.Columns.Add("列4", GetType(String)) 
Dim row, row1 As DataRow 
row = dt.NewRow() 
row!列1 = "行1" 
row!列2 = 1 
row!列3 = "d" 
row!列4 = "a" 
dt.Rows.Add(row) 
row1 = dt.NewRow() 
row1!列1 = "行2" 
row1!列2 = 12 
row1!列3 = "b" 
row1!列4 = "c" 
dt.Rows.Add(row1) 
Return dt 
End Function 

'2.将表中的内容导出到Excel 

Dim xlApp As New Excel.Application() 
Dim xlBook As Excel.Workbook 
Dim xlSheet As Excel.Worksheet 
Dim rowIndex As Integer = 1 
Dim colIndex As Integer = 0 
xlBook = xlApp.Workbooks().Add 
xlSheet = xlBook.Worksheets("sheet1") 

Dim Table As New DataTable() 
Table = CreaTable() 

'将所得到的表的列名,赋值给单元格 

Dim Col As DataColumn 
Dim Row As DataRow 
For Each Col In Table.Columns 
colIndex = colIndex + 1 
xlApp.Cells(1, colIndex) = Col.ColumnName 
Next 

'得到的表所有行,赋值给单元格 

For Each Row In Table.Rows 
rowIndex = rowIndex + 1 
colIndex = 0 
For Each Col In Table.Columns 
colIndex = colIndex + 1 
xlApp.Cells(rowIndex, colIndex) = Row(Col.ColumnName) 
Next 
Next 

With xlSheet 
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Name = "黑体" 
'设标题为黑体字 
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Bold = True 
'标题字体加粗 
.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1 
'设表格边框样式 
End With 

With xlSheet.PageSetup 
.LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc 
.CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) &_ 
"&""楷体_GB2312,常规""&10日 期:" 
.RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:" 
.LeftFooter = "&""楷体_GB2312,常规""&10制表人:" 
.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:" 
.RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页" 
End With 
xlApp.Visible = True 

'3.将表中的内容导出到WORD 

Dim wordApp As New Word.Application() 
Dim myDoc As Word.Document 
Dim oTable As Word.Table 
Dim rowIndex, colIndex As Integer 
rowIndex = 1 
colIndex = 0 
wordApp.Documents.Add() 
myDoc = wordApp.ActiveDocument 

Dim Table As New DataTable() 
Table = CreaTable() 
oTable = myDoc.Tables.Add(Range:=myDoc.Range(Start:=0, End:=0), _ 
NumRows:=Table.Rows.Count + 1, NumColumns:=Table.Columns.Count) 
'将所得到的表的列名,赋值给单元格 
Dim Col As DataColumn 
Dim Row As DataRow 
For Each Col In Table.Columns 
colIndex = colIndex + 1 
oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName) 
Next 

'得到的表所有行,赋值给单元格 

For Each Row In Table.Rows 
rowIndex = rowIndex + 1 
colIndex = 0 
For Each Col In Table.Columns 
colIndex = colIndex + 1 
oTable.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName)) 
Next 
Next 
oTable.Borders.InsideLineStyle = 1 
oTable.Borders.OutsideLineStyle = 1 
wordApp.Visible = True
--------------------编程问答-------------------- 大致思路是:

每一个表格是一个<div class="table"></div>
每一行是一个<div class="row"></div>
每一个单元格是<div class="col"></div>

表格的边框只有右、下
行的边框只有上
div的边框只有左 --------------------编程问答-------------------- 更正:
div的边框只有左
应为:
单元格的边框只有左 --------------------编程问答-------------------- uno(钢盅郭子)谢谢啊,我试试;
leziwl(飞鸟)谢谢啊,我先改成c#试试。 --------------------编程问答--------------------
引用 2 楼 leziwl 的回复:
试试这个 
Private   Function   CreaTable()   As   DataTable   
Dim   dt   As   New   DataTable()   
dt.Columns.Add( "列1 ",   GetType(String))   
dt.Columns.Add( "列2 ",   GetType(Integer))   
dt.Columns.Add( "列3 ",   GetType(String))   
dt.Columns.Add( "列4 ",   GetType(String))   
Dim   row,   row1   As   DataRow   
row   =   dt.NewRow()   
row!列1   =   "行1 "   
row!列2   =   1   …


貌似不错。。。 --------------------编程问答--------------------
引用 6 楼 xocom 的回复:
引用 2 楼 leziwl 的回复:
试试这个 
Private  Function  CreaTable()  As  DataTable  
Dim  dt  As  New  DataTable()  
dt.Columns.Add( "列1 ",  GetType(String))  
dt.Columns.Add( "列2 ",  GetType(Integer))  
dt.Columns.Add( "列3 ",  GetType(String))  
dt.Columns.Add( "列4 ",  GetType(String))  
Dim  row,  row1  As  DataRow  
row  =  dt.NewRow()  
row!列1  =  "行1 "  
row!列2  =  1  … 
 …

不知好不好用?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,