Lead the data out to excel


None.gif Imports Microsoft.VisualBasic
None.gifImports System.Text
None.gifImports System.IO
None.gifImports MainMod
None.gif
None.gifPublic Class ExcelFile
None.gif    Public Enum ValueTypes
None.gif        xlsInteger 
=   0
None.gif        xlsNumber 
=   1
None.gif        xlsText 
=   2
None.gif    End Enum
None.gif
None.gif
None.gif    Public Enum CellAlignment
None.gif        xlsGeneralAlign 
=   0
None.gif        xlsLeftAlign 
=   1
None.gif        xlsCentreAlign 
=   2
None.gif        xlsRightAlign 
=   3
None.gif        xlsFillCell 
=   4
None.gif        xlsLeftBorder 
=   8
None.gif        xlsRightBorder 
=   16
None.gif        xlsTopBorder 
=   32
None.gif        xlsBottomBorder 
=   64
None.gif        xlsShaded 
=   128
None.gif    End Enum
None.gif
None.gif    Public Enum CellFont
None.gif
None.gif        xlsFont0 
=   0
None.gif        xlsFont1 
=   64
None.gif        xlsFont2 
=   128
None.gif        xlsFont3 
=   192
None.gif    End Enum
None.gif
None.gif    Public Enum CellHiddenLocked
None.gif        xlsNormal 
=   0
None.gif        xlsLocked 
=   64
None.gif        xlsHidden 
=   128
None.gif    End Enum
None.gif
None.gif    Public Enum MarginTypes
None.gif        xlsLeftMargin 
=   38
None.gif        xlsRightMargin 
=   39
None.gif        xlsTopMargin 
=   40
None.gif        xlsBottomMargin 
=   41
None.gif    End Enum
None.gif
None.gif    Public Enum FontFormatting
None.gif        xlsNoFormat 
=   0
None.gif        xlsBold 
=   1
None.gif        xlsItalic 
=   2
None.gif        xlsUnderline 
=   4
None.gif        xlsStrikeout 
=   8
None.gif    End Enum
None.gif
None.gif    Private Structure FONT_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim FontHeight As Short
None.gif        Dim FontAttributes1 As Byte
None.gif        Dim FontAttributes2 As Byte
None.gif        Dim FontNameLength As Byte
None.gif    End Structure
None.gif
None.gif    Private Structure PASSWORD_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif    End Structure
None.gif
None.gif    Private Structure HEADER_FOOTER_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim TextLength As Byte
None.gif    End Structure
None.gif
None.gif    Private Structure PROTECT_SPREADSHEET_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim Protect As Short
None.gif    End Structure
None.gif
None.gif    Private Structure FORMAT_COUNT_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim Count As Short
None.gif    End Structure
None.gif
None.gif    Private Structure FORMAT_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim FormatLenght As Byte
None.gif    End Structure
None.gif
None.gif    Private Structure COLWIDTH_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim col1 As Byte
None.gif        Dim col2 As Byte
None.gif        Dim ColumnWidth As Short
None.gif    End Structure
None.gif
None.gif    Private Structure BEG_FILE_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim version As Short
None.gif        Dim ftype As Short
None.gif    End Structure
None.gif
None.gif    Private Structure END_FILE_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif    End Structure
None.gif
None.gif
None.gif    Private Structure PRINT_GRIDLINES_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim PrintFlag As Short
None.gif    End Structure
None.gif
None.gif    Private Structure tInteger
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim row As Short
None.gif        Dim col As Short
None.gif        Dim rgbAttr1 As Byte
None.gif        Dim rgbAttr2 As Byte
None.gif        Dim rgbAttr3 As Byte
None.gif        Dim intValue As Short
None.gif    End Structure
None.gif
None.gif
None.gif    Private Structure tNumber
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim row As Short
None.gif        Dim col As Short
None.gif        Dim rgbAttr1 As Byte
None.gif        Dim rgbAttr2 As Byte
None.gif        Dim rgbAttr3 As Byte
None.gif        Dim NumberValue As Double
None.gif    End Structure
None.gif
None.gif    Private Structure tText
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim row As Short
None.gif        Dim col As Short
None.gif        Dim rgbAttr1 As Byte
None.gif        Dim rgbAttr2 As Byte
None.gif        Dim rgbAttr3 As Byte
None.gif        Dim TextLength As Byte
None.gif    End Structure
None.gif
None.gif    Private Structure MARGIN_RECORD_LAYOUT
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim MarginValue As Double
None.gif    End Structure
None.gif
None.gif    Private Structure HPAGE_BREAK_RECORD
None.gif        Dim opcode As Short
None.gif        Dim length As Short
None.gif        Dim NumPageBreaks As Short
None.gif    End Structure
None.gif
None.gif    Private Structure DEF_ROWHEIGHT_RECORD
None.gif        Dim opcode As Integer
None.gif        Dim length As Integer
None.gif        Dim RowHeight As Integer
None.gif    End Structure
None.gif
None.gif    Private Structure ROW_HEIGHT_RECORD
None.gif        Dim opcode As Integer
None.gif        Dim length As Integer
None.gif        Dim RowNumber As Integer
None.gif        Dim FirstColumn As Integer
None.gif        Dim LastColumn As Integer
None.gif        Dim RowHeight As Integer
None.gif        Dim internal As Integer
None.gif        Dim DefaultAttributes As Byte
None.gif        Dim FileOffset As Integer
None.gif        Dim rgbAttr1 As Byte
None.gif        Dim rgbAttr2 As Byte
None.gif        Dim rgbAttr3 As Byte
None.gif    End Structure
None.gif
None.gif    Private Declare Sub CopyMemory Lib 
" kernel32 "  Alias  " RtlMoveMemory "  (ByRef lpvDest As String, ByRef lpvSource As Short, ByVal cbCopy As Integer)
None.gif
None.gif    Private m_shtFileNumber As Short
None.gif    Private m_udtBEG_FILE_MARKER As BEG_FILE_RECORD
None.gif    Private m_udtEND_FILE_MARKER As END_FILE_RECORD
None.gif    Private m_udtHORIZ_PAGE_BREAK As HPAGE_BREAK_RECORD
None.gif
None.gif    Private m_shtHorizPageBreakRows() As Short
None.gif    Private m_shtNumHorizPageBreaks As Short
None.gif
None.gif
None.gif
None.gif    Public WriteOnly Property PrintGridLines() As Boolean
None.gif        Set(ByVal Value As Boolean)
None.gif            Try
None.gif                Dim GRIDLINES_RECORD As PRINT_GRIDLINES_RECORD
None.gif
None.gif                With GRIDLINES_RECORD
None.gif                    .opcode 
=   43
None.gif                    .length 
=   2
None.gif                    If Value 
=  True Then
None.gif                        .PrintFlag 
=   1
None.gif                    Else
None.gif                        .PrintFlag 
=   0
None.gif                    End If
None.gif
None.gif                End With
None.gif
None.gif                FilePut(m_shtFileNumber, GRIDLINES_RECORD)
None.gif            Catch ex As Exception
None.gif
None.gif            End Try
None.gif        End Set
None.gif    End Property
None.gif
None.gif    Public WriteOnly Property ProtectSpreadsheet() As Boolean
None.gif        Set(ByVal Value As Boolean)
None.gif            Try
None.gif                Dim PROTECT_RECORD As PROTECT_SPREADSHEET_RECORD
None.gif
None.gif                With PROTECT_RECORD
None.gif                    .opcode 
=   18
None.gif                    .length 
=   2
None.gif                    If Value 
=  True Then
None.gif                        .Protect 
=   1
None.gif                    Else
None.gif                        .Protect 
=   0
None.gif                    End If
None.gif
None.gif                End With
None.gif
None.gif                FilePut(m_shtFileNumber, PROTECT_RECORD)
None.gif
None.gif            Catch ex As Exception
None.gif
None.gif            End Try
None.gif        End Set
None.gif    End Property
None.gif
None.gif    Public Sub GetExeclFile(ByVal FileName As String, ByVal StrSql As String)
None.gif        Dim i As Integer 
=   0 , j As Integer  =   0
None.gif        Dim Arr As Array 
=  Nothing
None.gif        Dim Brr As Array 
=  Nothing
None.gif
None.gif        CreateFile(FileName)
None.gif        PrintGridLines 
=  False
None.gif
None.gif        SetMargin(ExcelFile.MarginTypes.xlsTopMargin, 
1.5 )
None.gif        SetMargin(ExcelFile.MarginTypes.xlsLeftMargin, 
1.5 )
None.gif        SetMargin(ExcelFile.MarginTypes.xlsRightMargin, 
1.5 )
None.gif        SetMargin(ExcelFile.MarginTypes.xlsBottomMargin, 
1.5 )
None.gif        SetFont(
" Microsoft Sans Serif " " 9 " , ExcelFile.FontFormatting.xlsItalic)
None.gif        SetColumnWidth(
1 20 9 )
None.gif        SetHeader(
" This is the header " )
None.gif        SetFooter(
" This ia the footer " )
None.gif        If StrSql 
<>   ""  Then
None.gif            Arr 
=  Split(StrSql, RECORD_SPLITOR)
None.gif            For i 
=   0  To UBound(Arr)
None.gif                Brr 
=  Split(Arr(i), FIELD_SPLITOR)
None.gif                For j 
=   0  To UBound(Brr)
None.gif                    WriteValue(ExcelFile.ValueTypes.xlsText, ExcelFile.CellFont.xlsFont0, ExcelFile.CellAlignment.xlsCentreAlign, ExcelFile.CellHiddenLocked.xlsNormal, i 
+   1 , j  +   1 , Brr(j))
None.gif                Next
None.gif            Next
None.gif        End If
None.gif        CloseFile()
None.gif    End Sub
None.gif    Public Function CreateFile(ByVal strFileName As String) As Integer
None.gif        Dim OpenFile As Integer
None.gif
None.gif        Try
None.gif            If File.Exists(strFileName) Then
None.gif                File.SetAttributes(strFileName, FileAttributes.Normal)
None.gif                File.Delete(strFileName)
None.gif            End If
None.gif
None.gif            m_shtFileNumber 
=  FreeFile()
None.gif            'System.IO.File.Create(strFileName)
None.gif
None.gif            FileOpen(m_shtFileNumber, strFileName, OpenMode.Binary)
None.gif
None.gif            FilePut(m_shtFileNumber, m_udtBEG_FILE_MARKER)
None.gif
None.gif            Call WriteDefaultFormats()
None.gif
None.gif            ReDim m_shtHorizPageBreakRows(
0 )
None.gif
None.gif            m_shtNumHorizPageBreaks 
=   0
None.gif
None.gif            OpenFile 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            OpenFile 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function CloseFile() As Integer
None.gif        Dim x As Short
None.gif
None.gif        Try
None.gif            If m_shtFileNumber 
>   0  Then
None.gif
None.gif                Dim lLoop1 As Integer
None.gif                Dim lLoop2 As Integer
None.gif                Dim lTemp As Integer
None.gif                If m_shtNumHorizPageBreaks 
>   0  Then
None.gif
None.gif                    For lLoop1 
=  UBound(m_shtHorizPageBreakRows) To LBound(m_shtHorizPageBreakRows) Step  - 1
None.gif                        For lLoop2 
=  LBound(m_shtHorizPageBreakRows)  +   1  To lLoop1
None.gif                            If m_shtHorizPageBreakRows(lLoop2 
-   1 >  m_shtHorizPageBreakRows(lLoop2) Then
None.gif                                lTemp 
=  m_shtHorizPageBreakRows(lLoop2  -   1 )
None.gif                                m_shtHorizPageBreakRows(lLoop2 
-   1 =  m_shtHorizPageBreakRows(lLoop2)
None.gif                                m_shtHorizPageBreakRows(lLoop2) 
=  lTemp
None.gif                            End If
None.gif                        Next lLoop2
None.gif                    Next lLoop1
None.gif
None.gif                    With m_udtHORIZ_PAGE_BREAK
None.gif                        .opcode 
=   27
None.gif                        .length 
=   2   +  (m_shtNumHorizPageBreaks  *   2 )
None.gif                        .NumPageBreaks 
=  m_shtNumHorizPageBreaks
None.gif                    End With
None.gif
None.gif                    FilePut(m_shtFileNumber, m_udtHORIZ_PAGE_BREAK)
None.gif
None.gif                    For x 
=   1  To UBound(m_shtHorizPageBreakRows)
None.gif                        FilePut(m_shtFileNumber, MKI(m_shtHorizPageBreakRows(x)))
None.gif                    Next
None.gif                End If
None.gif
None.gif                FilePut(m_shtFileNumber, m_udtEND_FILE_MARKER)
None.gif                FileClose(m_shtFileNumber)
None.gif
None.gif                CloseFile 
=   0
None.gif            Else
None.gif                CloseFile 
=   - 1
None.gif            End If
None.gif        Catch ex As Exception
None.gif            CloseFile 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Private Sub Init()
None.gif
None.gif
None.gif
None.gif        With m_udtBEG_FILE_MARKER
None.gif            .opcode 
=   9
None.gif            .length 
=   4
None.gif            .version 
=   2
None.gif            .ftype 
=   10
None.gif        End With
None.gif
None.gif        With m_udtEND_FILE_MARKER
None.gif            .opcode 
=   10
None.gif        End With
None.gif
None.gif    End Sub
None.gif
None.gif    Public Sub New()
None.gif        MyBase.New()
None.gif
None.gif        Init()
None.gif    End Sub
None.gif
None.gif    Public Function InsertHorizPageBreak(ByRef lrow As Integer) As Integer
None.gif        Dim row As Short
None.gif
None.gif        Try
None.gif
None.gif            If lrow 
>   32767  Then
None.gif                row 
=  CShort(lrow  -   65536 )
None.gif            Else
None.gif                row 
=  CShort(lrow)  -   1
None.gif            End If
None.gif
None.gif            m_shtNumHorizPageBreaks 
=  m_shtNumHorizPageBreaks  +   1
None.gif            ReDim Preserve m_shtHorizPageBreakRows(m_shtNumHorizPageBreaks)
None.gif
None.gif            m_shtHorizPageBreakRows(m_shtNumHorizPageBreaks) 
=  row
None.gif
None.gif        Catch ex As Exception
None.gif            InsertHorizPageBreak 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function WriteValue(ByRef ValueType As ValueTypes, ByRef CellFontUsed As CellFont, ByRef Alignment As CellAlignment, ByRef HiddenLocked As CellHiddenLocked, ByRef lrow As Integer, ByRef lcol As Integer, ByRef Value As Object, Optional ByRef CellFormat As Integer 
=   0 ) As Integer
None.gif        Dim l As Short
None.gif        Dim st As String
None.gif        Dim col As Short
None.gif        Dim row As Short
None.gif
None.gif        Try
None.gif
None.gif            Dim INTEGER_RECORD As tInteger
None.gif            Dim NUMBER_RECORD As tNumber
None.gif            Dim TEXT_RECORD As tText
None.gif
None.gif            If lrow 
>   32767  Then
None.gif                row 
=  CShort(lrow  -   65536 )
None.gif            Else
None.gif                row 
=  CShort(lrow)  -   1
None.gif            End If
None.gif
None.gif            If lcol 
>   32767  Then
None.gif                col 
=  CShort(lcol  -   65536 )
None.gif            Else
None.gif                col 
=  CShort(lcol)  -   1
None.gif            End If
None.gif
None.gif            Select Case ValueType
None.gif                Case ValueTypes.xlsInteger
None.gif                    With INTEGER_RECORD
None.gif                        .opcode 
=   2
None.gif                        .length 
=   9
None.gif                        .row 
=  row
None.gif                        .col 
=  col
None.gif                        .rgbAttr1 
=  CByte(HiddenLocked)
None.gif                        .rgbAttr2 
=  CByte(CellFontUsed  +  CellFormat)
None.gif                        .rgbAttr3 
=  CByte(Alignment)
None.gif                        .intValue 
=  CShort(Value)
None.gif                    End With
None.gif
None.gif                    FilePut(m_shtFileNumber, INTEGER_RECORD)
None.gif
None.gif                Case ValueTypes.xlsNumber
None.gif                    With NUMBER_RECORD
None.gif                        .opcode 
=   3
None.gif                        .length 
=   15
None.gif                        .row 
=  row
None.gif                        .col 
=  col
None.gif                        .rgbAttr1 
=  CByte(HiddenLocked)
None.gif                        .rgbAttr2 
=  CByte(CellFontUsed  +  CellFormat)
None.gif                        .rgbAttr3 
=  CByte(Alignment)
None.gif                        .NumberValue 
=  CDbl(Value)
None.gif                    End With
None.gif
None.gif                    FilePut(m_shtFileNumber, NUMBER_RECORD)
None.gif
None.gif                Case ValueTypes.xlsText
None.gif                    st 
=  CType(Value, String)
None.gif
None.gif                    l 
=  GetLength(st)
None.gif
None.gif                    With TEXT_RECORD
None.gif                        .opcode 
=   4
None.gif                        .length 
=   10
None.gif
None.gif                        .TextLength 
=  l
None.gif
None.gif
None.gif                        .length 
=   8   +  l
None.gif
None.gif                        .row 
=  row
None.gif                        .col 
=  col
None.gif
None.gif                        .rgbAttr1 
=  CByte(HiddenLocked)
None.gif                        .rgbAttr2 
=  CByte(CellFontUsed  +  CellFormat)
None.gif                        .rgbAttr3 
=  CByte(Alignment)
None.gif
None.gif                        FilePut(m_shtFileNumber, TEXT_RECORD)
None.gif
None.gif                        FilePut(m_shtFileNumber, st)
None.gif                    End With
None.gif
None.gif            End Select
None.gif
None.gif            WriteValue 
=   0
None.gif        Catch ex As Exception
None.gif            WriteValue 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function SetMargin(ByRef Margin As MarginTypes, ByRef MarginValue As Double) As Integer
None.gif
None.gif        Try
None.gif            Dim MarginRecord As MARGIN_RECORD_LAYOUT
None.gif
None.gif            With MarginRecord
None.gif                .opcode 
=  Margin
None.gif                .length 
=   8
None.gif                .MarginValue 
=  MarginValue ' in  inches
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, MarginRecord)
None.gif
None.gif            SetMargin 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetMargin 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function SetColumnWidth(ByRef FirstColumn As Byte, ByRef LastColumn As Byte, ByRef WidthValue As Short) As Integer
None.gif        Try
None.gif            Dim COLWIDTH As COLWIDTH_RECORD
None.gif
None.gif            With COLWIDTH
None.gif                .opcode 
=   36
None.gif                .length 
=   4
None.gif                .col1 
=  FirstColumn  -   1
None.gif                .col2 
=  LastColumn  -   1
None.gif                .ColumnWidth 
=  WidthValue  *   256
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, COLWIDTH)
None.gif
None.gif            SetColumnWidth 
=   0
None.gif        Catch ex As Exception
None.gif            SetColumnWidth 
=  Err.Number
None.gif        End Try
None.gif    End Function
None.gif
None.gif    Public Function SetFont(ByRef FontName As String, ByRef FontHeight As Short, ByRef FontFormat As FontFormatting) As Short
None.gif        Dim l As Short
None.gif
None.gif        Try
None.gif            Dim FONTNAME_RECORD As FONT_RECORD
None.gif
None.gif            l 
=  GetLength(FontName)
None.gif
None.gif            With FONTNAME_RECORD
None.gif                .opcode 
=   49
None.gif                .length 
=   5   +  l
None.gif                .FontHeight 
=  FontHeight  *   20
None.gif                .FontAttributes1 
=  CByte(FontFormat)
None.gif                .FontAttributes2 
=  CByte( 0 )
None.gif                .FontNameLength 
=  CByte(l)
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, FONTNAME_RECORD)
None.gif
None.gif
None.gif            FilePut(m_shtFileNumber, FontName)
None.gif
None.gif            SetFont 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetFont 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function SetHeader(ByRef HeaderText As String) As Integer
None.gif        Dim l As Short
None.gif
None.gif        Try
None.gif
None.gif            Dim HEADER_RECORD As HEADER_FOOTER_RECORD
None.gif
None.gif            l 
=  GetLength(HeaderText)
None.gif            With HEADER_RECORD
None.gif                .opcode 
=   20
None.gif                .length 
=   1   +  l
None.gif                .TextLength 
=  CByte(l)
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, HEADER_RECORD)
None.gif
None.gif            FilePut(m_shtFileNumber, HeaderText)
None.gif
None.gif            SetHeader 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetHeader 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function SetFooter(ByRef FooterText As String) As Integer
None.gif        Dim l As Short
None.gif
None.gif        Try
None.gif            Dim FOOTER_RECORD As HEADER_FOOTER_RECORD
None.gif
None.gif            l 
=  GetLength(FooterText)
None.gif
None.gif            With FOOTER_RECORD
None.gif                .opcode 
=   21
None.gif                .length 
=   1   +  l
None.gif                .TextLength 
=  CByte(l)
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, FOOTER_RECORD)
None.gif
None.gif            FilePut(m_shtFileNumber, FooterText)
None.gif
None.gif            SetFooter 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetFooter 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Public Function SetFilePassword(ByRef PasswordText As String) As Integer
None.gif        Dim l As Short
None.gif
None.gif        Try
None.gif            Dim FILE_PASSWORD_RECORD As PASSWORD_RECORD
None.gif
None.gif            l 
=  GetLength(PasswordText)
None.gif
None.gif            With FILE_PASSWORD_RECORD
None.gif                .opcode 
=   47
None.gif                .length 
=  l
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, FILE_PASSWORD_RECORD)
None.gif
None.gif            FilePut(m_shtFileNumber, PasswordText)
None.gif
None.gif            SetFilePassword 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetFilePassword 
=  Err.Number
None.gif        End Try
None.gif
None.gif    End Function
None.gif
None.gif    Private Function WriteDefaultFormats() As Integer
None.gif
None.gif        Dim cFORMAT_COUNT_RECORD As FORMAT_COUNT_RECORD
None.gif        Dim cFORMAT_RECORD As FORMAT_RECORD
None.gif        Dim lIndex As Integer
None.gif        Dim aFormat(
23 ) As String
None.gif        Dim l As Integer
None.gif        Dim q As String 
=  Chr( 34 )
None.gif
None.gif        aFormat(
0 =   " General "
None.gif        aFormat(
1 =   " 0 "
None.gif        aFormat(
2 =   " 0.00 "
None.gif        aFormat(
3 =   " #,##0 "
None.gif        aFormat(
4 =   " #,##0.00 "
None.gif        aFormat(
5 =   " #,##0\  "   &  q  &   " $ "   &  q  &   " ;\-#,##0\  "   &  q  &   " $ "   &  q
None.gif        aFormat(
6 =   " #,##0\  "   &  q  &   " $ "   &  q  &   " ;[Red]\-#,##0\  "   &  q  &   " $ "   &  q
None.gif        aFormat(
7 =   " #,##0.00\  "   &  q  &   " $ "   &  q  &   " ;\-#,##0.00\  "   &  q  &   " $ "   &  q
None.gif        aFormat(
8 =   " #,##0.00\  "   &  q  &   " $ "   &  q  &   " ;[Red]\-#,##0.00\  "   &  q  &   " $ "   &  q
None.gif        aFormat(
9 =   " 0% "
None.gif        aFormat(
10 =   " 0.00% "
None.gif        aFormat(
11 =   " 0.00E+00 "
None.gif        aFormat(
12 =   " dd/mm/yy "
None.gif        aFormat(
13 =   " dd/\ mmm\ yy "
None.gif        aFormat(
14 =   " dd/\ mmm "
None.gif        aFormat(
15 =   " mmm\ yy "
None.gif        aFormat(
16 =   " h:mm\ AM/PM "
None.gif        aFormat(
17 =   " h:mm:ss\ AM/PM "
None.gif        aFormat(
18 =   " hh:mm "
None.gif        aFormat(
19 =   " hh:mm:ss "
None.gif        aFormat(
20 =   " dd/mm/yy\ hh:mm "
None.gif        aFormat(
21 =   " ##0.0E+0 "
None.gif        aFormat(
22 =   " mm:ss "
None.gif        aFormat(
23 =   " @ "
None.gif
None.gif        With cFORMAT_COUNT_RECORD
None.gif            .opcode 
=   & H1FS
None.gif            .length 
=   & H2S
None.gif            .Count 
=  CShort(UBound(aFormat))
None.gif        End With
None.gif
None.gif        FilePut(m_shtFileNumber, cFORMAT_COUNT_RECORD)
None.gif
None.gif        Dim b As Byte
None.gif        Dim a As Integer
None.gif        For lIndex 
=  LBound(aFormat) To UBound(aFormat)
None.gif            l 
=  Len(aFormat(lIndex))
None.gif            With cFORMAT_RECORD
None.gif                .opcode 
=   & H1ES
None.gif                .length 
=  CShort(l  +   1 )
None.gif                .FormatLenght 
=  CShort(l)
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, cFORMAT_RECORD)
None.gif            For a 
=   1  To l
None.gif                b 
=  Asc(Mid(aFormat(lIndex), a,  1 ))
None.gif                FilePut(m_shtFileNumber, b)
None.gif            Next
None.gif        Next lIndex
None.gif
None.gif    End Function
None.gif
None.gif    Private Function MKI(ByRef x As Short) As String
None.gif        Dim temp As String
None.gif        temp 
=  Space( 2 )
None.gif        CopyMemory(temp, x, 
2 )
None.gif        MKI 
=  temp
None.gif    End Function
None.gif
None.gif    Private Function GetLength(ByVal strText As String) As Integer
None.gif        Return Encoding.Default.GetBytes(strText).Length
None.gif    End Function
None.gif
None.gif    Public Function SetDefaultRowHeight(ByVal HeightValue As Integer) As Integer
None.gif        Try
None.gif
None.gif            Dim DEFHEIGHT As DEF_ROWHEIGHT_RECORD
None.gif
None.gif            With DEFHEIGHT
None.gif                .opcode 
=   37
None.gif                .length 
=   2
None.gif                .RowHeight 
=  HeightValue  *   20
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, DEFHEIGHT)
None.gif
None.gif            SetDefaultRowHeight 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetDefaultRowHeight 
=  Err.Number
None.gif        End Try
None.gif    End Function
None.gif
None.gif    Public Function SetRowHeight(ByVal Row As Integer, ByVal HeightValue As Short) As Integer
None.gif
None.gif        Dim o_intRow As Integer
None.gif
None.gif        Try
None.gif
None.gif            If Row 
>   32767  Then
None.gif                o_intRow 
=  CInt(Row  -   65536 )
None.gif            Else
None.gif                o_intRow 
=  CInt(Row)  -   1
None.gif            End If
None.gif
None.gif            Dim ROWHEIGHTREC As ROW_HEIGHT_RECORD
None.gif
None.gif            With ROWHEIGHTREC
None.gif                .opcode 
=   8
None.gif                .length 
=   16
None.gif                .RowNumber 
=  o_intRow
None.gif                .FirstColumn 
=   0
None.gif                .LastColumn 
=   256
None.gif                .RowHeight 
=  HeightValue  *   20
None.gif                .internal 
=   0
None.gif                .DefaultAttributes 
=   0
None.gif                .FileOffset 
=   0
None.gif                .rgbAttr1 
=   0
None.gif                .rgbAttr2 
=   0
None.gif                .rgbAttr3 
=   0
None.gif            End With
None.gif
None.gif            FilePut(m_shtFileNumber, ROWHEIGHTREC)
None.gif
None.gif            SetRowHeight 
=   0
None.gif
None.gif        Catch ex As Exception
None.gif            SetRowHeight 
=  Err.Number
None.gif        End Try
None.gif    End Function
None.gif
None.gifEnd Class

转载于:https://www.cnblogs.com/jiemupig/archive/2006/05/30/413086.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值