给你个列题参考: private void initData()
{
Table gvt = new Table();
gv.Attributes.Add( "ID", "gv" );
gv.Controls.Add( gvt );
string sXml = @"c:\\Sheet.xml";
if( !System.IO.File.Exists( sXml ) )
return;
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load( sXml );
System.Xml.XmlNode node = xmlDoc.GetElementsByTagName( "Worksheet" ).Item( 0 ).ChildNodes[ 0 ];
int iRows = node.ChildNodes.Count;
List <DataClass> list = new List <DataClass>();
List <GridViewRow> headRows = new List <GridViewRow>();
for( int i = 0; i < iRows; i++ )
{
XmlNode xmlRow = node.ChildNodes[ i ];
GridViewRow addHeaderRow = new GridViewRow( 0, 0, DataControlRowType.Header, DataControlRowState.Normal );
int iColumns = xmlRow.ChildNodes.Count;
for( int j = 0; j < iColumns; j++ )
{
XmlNode xmlColumn = xmlRow.ChildNodes[ j ];
string sText = "";
sText = xmlColumn.InnerText;
if( sText == "" )
sText = " ";
int iRowSpan = 1;
XmlAttribute xmlAttrRowSpan = xmlColumn.Attributes[ "ss:MergeDown" ];
if( xmlAttrRowSpan != null && !String.IsNullOrEmpty( xmlAttrRowSpan.Value ) )
iRowSpan = Convert.ToInt32( xmlAttrRowSpan.Value ) + 1; int iColumnSpan = 1;
XmlAttribute xmlAttrColumnSpan = xmlColumn.Attributes[ "ss:MergeAcross" ];
if( xmlAttrColumnSpan != null && !String.IsNullOrEmpty( xmlAttrColumnSpan.Value ) )
iColumnSpan = Convert.ToInt32( xmlAttrColumnSpan.Value ) + 1; int iIndex = 0;
XmlAttribute xmlAttrIndex = xmlColumn.Attributes[ "ss:Index" ];
if( xmlAttrIndex != null && !String.IsNullOrEmpty( xmlAttrIndex.Value ) )
iIndex = Convert.ToInt32( xmlAttrIndex.Value );
if( iIndex != 0 )
{
int RowCellCount = addHeaderRow.Cells.Count;
for( int k = 0; k < iIndex - RowCellCount; k++ )
{
TableCell Cell = new TableCell();
Cell.Text = " ";
Cell.Wrap = false;
Cell.BorderColor = Color.Black;
Cell.HorizontalAlign = HorizontalAlign.Center;
addHeaderRow.Cells.Add( Cell );
}
addHeaderRow.Cells[ iIndex - 1 ].Text = sText;
}
else
{
TableCell Cell = new TableCell();
Cell.Text = sText;
//Cell.ColumnSpan = iColumnSpan;
//Cell.RowSpan = iRowSpan;
Cell.Wrap = false;
Cell.BorderColor = Color.Black;
Cell.HorizontalAlign = HorizontalAlign.Center;
addHeaderRow.Cells.Add( Cell );
}
DataClass test = new DataClass();
test.RowIndex = i;
test.ColumnIndex = j;
test.RowSpan = iRowSpan;
test.ColumnSpan = iColumnSpan;
list.Add( test );
}
headRows.Add( addHeaderRow );
}
foreach( DataClass data in list )
{
headRows[ data.RowIndex ].Cells[ data.ColumnIndex ].RowSpan = data.RowSpan;
headRows[ data.RowIndex ].Cells[ data.ColumnIndex ].ColumnSpan = data.ColumnSpan;
}
foreach( GridViewRow row in headRows )
{
this.gv.Controls[ 0 ].Controls.Add( row );
}
}
[Serializable]
public class DataClass
{
private int iColIndex = 0;
private int iRowIndex = 0;
private int iRowSpan = 1;
private int iCloSpan = 1;
public int ColumnIndex
{
set
{
iColIndex = value;
}
get
{
return iColIndex;
}
}
public int RowIndex
{
set
{
iRowIndex = value;
}
get
{
return iRowIndex;
}
}
public int RowSpan
{
set
{
iRowSpan = value;
}
get
{
return iRowSpan;
}
}
public int ColumnSpan
{
set
{
iCloSpan = value;
}
get
{
return iCloSpan;
}
}
}
{
Table gvt = new Table();
gv.Attributes.Add( "ID", "gv" );
gv.Controls.Add( gvt );
string sXml = @"c:\\Sheet.xml";
if( !System.IO.File.Exists( sXml ) )
return;
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load( sXml );
System.Xml.XmlNode node = xmlDoc.GetElementsByTagName( "Worksheet" ).Item( 0 ).ChildNodes[ 0 ];
int iRows = node.ChildNodes.Count;
List <DataClass> list = new List <DataClass>();
List <GridViewRow> headRows = new List <GridViewRow>();
for( int i = 0; i < iRows; i++ )
{
XmlNode xmlRow = node.ChildNodes[ i ];
GridViewRow addHeaderRow = new GridViewRow( 0, 0, DataControlRowType.Header, DataControlRowState.Normal );
int iColumns = xmlRow.ChildNodes.Count;
for( int j = 0; j < iColumns; j++ )
{
XmlNode xmlColumn = xmlRow.ChildNodes[ j ];
string sText = "";
sText = xmlColumn.InnerText;
if( sText == "" )
sText = " ";
int iRowSpan = 1;
XmlAttribute xmlAttrRowSpan = xmlColumn.Attributes[ "ss:MergeDown" ];
if( xmlAttrRowSpan != null && !String.IsNullOrEmpty( xmlAttrRowSpan.Value ) )
iRowSpan = Convert.ToInt32( xmlAttrRowSpan.Value ) + 1; int iColumnSpan = 1;
XmlAttribute xmlAttrColumnSpan = xmlColumn.Attributes[ "ss:MergeAcross" ];
if( xmlAttrColumnSpan != null && !String.IsNullOrEmpty( xmlAttrColumnSpan.Value ) )
iColumnSpan = Convert.ToInt32( xmlAttrColumnSpan.Value ) + 1; int iIndex = 0;
XmlAttribute xmlAttrIndex = xmlColumn.Attributes[ "ss:Index" ];
if( xmlAttrIndex != null && !String.IsNullOrEmpty( xmlAttrIndex.Value ) )
iIndex = Convert.ToInt32( xmlAttrIndex.Value );
if( iIndex != 0 )
{
int RowCellCount = addHeaderRow.Cells.Count;
for( int k = 0; k < iIndex - RowCellCount; k++ )
{
TableCell Cell = new TableCell();
Cell.Text = " ";
Cell.Wrap = false;
Cell.BorderColor = Color.Black;
Cell.HorizontalAlign = HorizontalAlign.Center;
addHeaderRow.Cells.Add( Cell );
}
addHeaderRow.Cells[ iIndex - 1 ].Text = sText;
}
else
{
TableCell Cell = new TableCell();
Cell.Text = sText;
//Cell.ColumnSpan = iColumnSpan;
//Cell.RowSpan = iRowSpan;
Cell.Wrap = false;
Cell.BorderColor = Color.Black;
Cell.HorizontalAlign = HorizontalAlign.Center;
addHeaderRow.Cells.Add( Cell );
}
DataClass test = new DataClass();
test.RowIndex = i;
test.ColumnIndex = j;
test.RowSpan = iRowSpan;
test.ColumnSpan = iColumnSpan;
list.Add( test );
}
headRows.Add( addHeaderRow );
}
foreach( DataClass data in list )
{
headRows[ data.RowIndex ].Cells[ data.ColumnIndex ].RowSpan = data.RowSpan;
headRows[ data.RowIndex ].Cells[ data.ColumnIndex ].ColumnSpan = data.ColumnSpan;
}
foreach( GridViewRow row in headRows )
{
this.gv.Controls[ 0 ].Controls.Add( row );
}
}
[Serializable]
public class DataClass
{
private int iColIndex = 0;
private int iRowIndex = 0;
private int iRowSpan = 1;
private int iCloSpan = 1;
public int ColumnIndex
{
set
{
iColIndex = value;
}
get
{
return iColIndex;
}
}
public int RowIndex
{
set
{
iRowIndex = value;
}
get
{
return iRowIndex;
}
}
public int RowSpan
{
set
{
iRowSpan = value;
}
get
{
return iRowSpan;
}
}
public int ColumnSpan
{
set
{
iCloSpan = value;
}
get
{
return iCloSpan;
}
}
}
解决方案 »
- 把Form放在Panel中,怎么知道Form的状态啊
- textbox與數據庫連接
- 把程序拷贝到别人的机器上连接数据库出现问题(求救!)
- 文件太大,如何读取?
- 怎么向LISTVIEW控件写一条记录显示一条
- 字符作參數調用窗體(c# WinForm SDI)
- 我用 DateTime.Today.ToShortDateString()获取的日期是2005-12-02,我想获取为20051202,应该怎么做?
- 我的.net里不能使用如:"response"之类的命令,这是为什么
- c# 调试 ,跟踪stringbuilder字符串,怎样调用 文本可视化工具(在线等。。。。)
- 学习c#建议先学习面向对象的知识,我却要推荐一本《java面向对象程序设计》,Wrox出的,太精彩了!
- 求C#windows编程一书中源代码
- 有一个问题 急急急!!!
C:/xsd.exe a.xml
它会自动转换