zoukankan      html  css  js  c++  java
  • 【Excel】读取固定长文本

    '*******************************************************************************
    '   固定長形式テキストファイルを読み込むサンプル(改行なし)
    '
    '   作成者:井上治  URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
    '*******************************************************************************
    ' [参照設定]
    '   ・Microsoft Scripting Runtime
    '*******************************************************************************
    Option Explicit
    ' レコードの項目定義
    Private Type typREC
        CODE As String * 5              ' コード
        MAKER As String * 10            ' メーカー
        HINMEI As String * 15           ' 品名
        SURYO As String * 4             ' 数量
        TANKA As String * 6             ' 単価
        KINGAKU As String * 8           ' 金額
    '    CRLF As String * 2              ' 改行コード分のダミー項目
    End Type
     
    '*******************************************************************************
    ' 固定長形式テキストファイルを読み込むサンプル(改行なし)
    ' 参照設定:(未使用)
    '*******************************************************************************
    Sub READ_FixLngFile2()
        Const cnsFILENAME = "SAMPLE2.dat"
        Const cnsLNGS = 48              ' レコード長
        Dim strFileName As String       ' ファイル名
        Dim intFF As Integer            ' FreeFile値
        Dim lngLOF As Long              ' LOF値
        Dim lngPOS As Long              ' 読み込み位置
        Dim GYO As Long                 ' 収容するセルの行
        Dim tmpREC As typREC            ' レコード定義
        Dim strREC As String            ' レコードを収容する変数
     
        ' 指定ファイルをOPEN(入力モード)
        strFileName = ThisWorkbook.Path & cnsFILENAME
        intFF = FreeFile
        Open strFileName For Binary As #intFF
        lngLOF = LOF(intFF)             ' LOF値(ファイルサイズ)取得
        lngPOS = 1                      ' 読み込み位置
        ' 2行目から開始
        Rows("2:65536").ClearContents
        GYO = 2
        Do Until lngPOS > lngLOF
            ' レコードの読み込み
            Get #intFF, lngPOS, tmpREC
            ' 1レコード分のセルへのセット
            '-----------------------------------------------------------------------
            ' A列(コード)は5バイトの文字列処理
            Cells(GYO, 1).Value = Trim(tmpREC.CODE)
            ' B列(メーカー)は10バイトの文字列処理
            Cells(GYO, 2).Value = Trim(tmpREC.MAKER)
            ' C列(品名)は15バイトの文字列処理
            Cells(GYO, 3).Value = Trim(tmpREC.HINMEI)
            ' D列(数量)は4バイトの数値処理
            Cells(GYO, 4).Value = CCur(tmpREC.SURYO)
            ' E列(単価)は6バイトの数値処理
            Cells(GYO, 5).Value = CCur(tmpREC.TANKA)
            ' F列(金額)は8バイトの数値処理
            Cells(GYO, 6).Value = CCur(tmpREC.KINGAKU)
            '-----------------------------------------------------------------------
            ' 読み込み位置を加算
            lngPOS = lngPOS + cnsLNGS
            ' 行を加算
            GYO = GYO + 1
        Loop
        ' 指定ファイルをCLOSE
        Close #intFF
    End Sub
     
    '-----------------------------<< End of Source >>-------------------------------
  • 相关阅读:
    Java Web(三) 会话机制,Cookie和Session详解(转载)
    如何转载别人的文章
    C#操作Word的+ CKEditor 輸出成Word文件(包含圖案上傳)
    vs2013 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”。是否缺少程序集引用?
    CKEditor与CKFinder学习--自定义界面及按钮事件捕获
    JS获取CkEditor在线编辑的内容
    <%#Eval() %>的常用方法
    ASP.NET 中 ContentType 类型
    富文本编辑器 CKeditor 配置使用+上传图片
    VS2013 蛋疼的“AJAX Control Toolkit”安装过程
  • 原文地址:https://www.cnblogs.com/sekihin/p/10571031.html
Copyright © 2011-2022 走看看