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

vb.net 定义Microsoft.Office.Interop.Excel.Range的有关问题

2013-08-09 
vb.net 定义Microsoft.Office.Interop.Excel.Range的问题,请指教Dim XlRange As Microsoft.Office.Interop

vb.net 定义Microsoft.Office.Interop.Excel.Range的问题,请指教

Dim XlRange As Microsoft.Office.Interop.Excel.Range
        Dim XL = New Microsoft.Office.Interop.Excel.Application
        Dim XlList As Microsoft.Office.Interop.Excel.Range = New Microsoft.Office.Interop.Excel.Range
        Dim iEachSize As Integer = DataGridView1.RowCount
        Dim iColumnAccount As Integer = DataGridView1.ColumnCount
        Dim NO(iEachSize, iColumnAccount) As Object
        XlRange = XL.Range("A2", Chr(CInt(AscW(CChar("A"))) + DataGridView1.ColumnCount + 1) & CStr(DataGridView1.RowCount + 1))
        For x = 0 To XlList.Count - 1
            For y = 0 To XlList(x).Count - 1
                NO(x, y) = XlList(x)(y)
            Next
        Next
        XlRange.Value2 = NO

XlList一直提示在使用前被赋值,我想知道这个问题怎么解决啊?
[解决办法]
 Dim exlApp As Excel.Application
        Dim exlBook As Excel.Workbook
        Dim exlSheet As Excel.Worksheet

        exlApp = CreateObject("Excel.Application") '创建Excel的应用程序实例
        exlBook = exlApp.Workbooks.Add '创建Excel的工作簿
        '删除多余的sheet,只留一张
        Dim co As Integer = exlBook.Sheets.Count
        For i As Integer = 1 To co - 1


            exlBook.Worksheets(1).delete()
        Next
        exlSheet = exlBook.Worksheets(1) '指定一张表
        exlSheet.Name = _strFileName
        exlApp.Visible = False

        '======================================宏
        ' 宏由 龙觉寺 录制,时间: 2013-7-1
        'exlSheet.Columns(1).ColumnWidth = 10.75
        'exlSheet.Columns(2).ColumnWidth = 13.88

        '设置表头
        Dim oRange As Excel.Range
        oRange = exlSheet.Range(exlSheet.Cells(1, 1), exlSheet.Cells(2, _DGV.ColumnCount))



参考以上代码:
Excel.Range是用来指定Excel.Worksheet(具体一张工作表)中的区域,你的程序中:
 Dim XL = New Microsoft.Office.Interop.Excel.Application
这个XL定义的是一个Excel.Application,这根本不对的,
你看下我的blog:http://blog.csdn.net/whitewolf123/article/details/9615547
[解决办法]
EXCEL2003导出要特别注意每个SHEET只有256列,导出时最好计算一下数据列,如果超过256就要新增SHEET,EXCEL2007列基本上够用了.

热点排行