首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

关于excel,该怎么处理

2012-02-15 
关于excel问一下,在VB.net中如何将数据(datatable),导入到新建的excel文件中,谢谢了!!!!!!!!!!![解决办法]

关于excel
问一下,在VB.net中如何将数据(datatable),导入到新建的excel文件中,谢谢了!!!!!!!!!!!

[解决办法]
public void ExportToExcel(DataSet ds)
{

if(ds.Tables.Count!=0)
{
string tempFileName = GetTempFileName();
object filename = EXCELPATH+tempFileName+EXCELPOSTFIX;/*你的文件路径+名*/
object Nothing = System.Reflection.Missing.Value;

//创建excel文件,文件名用系统时间生成精确到毫秒
Excel.Application myExcel = new Excel.ApplicationClass();
myExcel.Application.Workbooks.Add(Nothing);

try
{
//把Dataset中的数据插入Excel文件中
int totalCount = 0;
for(int k =0;k <ds.Tables.Count;k++)
{
int row = ds.Tables[k].Rows.Count;
int column = ds.Tables[k].Columns.Count;

for(int i = 0;i <column;i++)
{
myExcel.Cells[totalCount+2,1+i] = ds.Tables[k].Columns[i].ColumnName;
}

for(int i = 0;i <row;i++)
{
for(int j =0;j <column;j++)
{
myExcel.Cells[totalCount+3+i,1+j] = " ' " + ds.Tables[k].Rows[i][j].ToString();
}
}
totalCount = totalCount + row +4;
}

try
{
myExcel.ActiveWorkbook._SaveAs(filename,Nothing,Nothing,Nothing,Nothing,Nothing,XlSaveAsAccessMode.xlExclusive,Nothing,Nothing,Nothing,Nothing);
}
catch
{
System.Windows.Forms.MessageBox.Show( "系统找不到指定目录下的文件: "+EXCELPATH+tempFileName+EXCELPOSTFIX);
return;
}
myExcel.Visible = true;
}
catch(Exception e)
{
System.Windows.Forms.MessageBox.Show( "向excel文件中写入数据失败 " + e.Message);
}
}
else
{
System.Windows.Forms.MessageBox.Show( "No Data ");
}
}
[解决办法]
http://blog.csdn.net/zzy1254/archive/2007/05/21/1618959.aspx
看这个

[解决办法]
Public Sub Save_To_xlsFile(ByVal Mytable As DataTable, ByVal HeadOfTable As DataTable)
' ' ' ' '生成创建表头的字符窜
StrOfHead = " "
If HeadOfTable.Rows.Count < 1 Then
Exit Sub
Else
If Mytable.Columns(0).DataType.ToString = "system.Int " Or Mytable.Columns(0).DataType.ToString = "system.Decimal " Or Mytable.Columns(i).DataType.ToString = "System.Int32 " Then
StrOfHead = "[ " & HeadOfTable.Rows(0).Item(0) & "] " & " decimal "
Else
StrOfHead = "[ " & HeadOfTable.Rows(0).Item(0) & "] " & " varchar "
End If
End If
i = 1
Do While (i < HeadOfTable.Rows.Count)
If Mytable.Columns(i).DataType.ToString = "System.Int " Or Mytable.Columns(i).DataType.ToString = "System.Decimal " Or Mytable.Columns(i).DataType.ToString = "System.Int32 " Then
StrOfHead = StrOfHead & ",[ " & HeadOfTable.Rows(i).Item(0) & "] decimal "
Else
StrOfHead = StrOfHead & ",[ " & HeadOfTable.Rows(i).Item(0) & "] varchar "

End If

'StrOfHead = StrOfHead & ", " & HeadOfTable.Rows(i).Item(0) & " varchar "

i = i + 1
Loop
' ' ' ' ' '生成表中各列的字段字符窜
StrOf_NameOfCol = " "
StrOf_NameOfCol = "[ " & HeadOfTable.Rows(0).Item(0) & "] "


i = 1
Do While (i < HeadOfTable.Rows.Count)
StrOf_NameOfCol = StrOf_NameOfCol & ",[ " & HeadOfTable.Rows(i).Item(0) & "] "
i = i + 1
Loop
'向表中插入数据
i = 0
Do While (i < Mytable.Rows.Count)
Comm.CommandText = "insert into NCHZYL( " & StrOf_NameOfCol & ") values ( " & GetStrof_ValueOfCol(Mytable, i) & ") "
Debug.WriteLine(Comm.CommandText)
If Comm.ExecuteNonQuery = 0 Then
MsgBox( "插入错误 ")
End If
i = i + 1
Loop

Conn.Close()
End Sub

热点排行