【Excel】输出固定长文本
'*******************************************************************************
' 固定長形式テキストファイル書き出すサンプル(FSO)
'
' 作成者:井上治 URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
' [参照設定]
' ・Microsoft Scripting Runtime
'*******************************************************************************
Option Explicit '*******************************************************************************
' 固定長形式テキストファイル書き出すサンプル(FSO)
' 参照設定:Microsoft Scripting Runtime
'*******************************************************************************
Sub WRITE_FixLngFile1()
Const cnsFILENAME = "\SAMPLE.dat"
Dim FSO As New FileSystemObject ' FileSystemObject
Dim TS As TextStream ' TextStream
Dim GYO As Long ' 収容するセルの行
Dim GYOMAX As Long ' データが収容された最終行 ' 最終行の取得
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
GYOMAX = Range("A65536").End(xlUp).Row
' 指定ファイルをOPEN(出力モード)
Set TS = FSO.CreateTextFile(Filename:=ThisWorkbook.Path & cnsFILENAME, _
Overwrite:=True)
' 2行目から開始
GYO =
' 最終行まで繰り返す
Do Until GYO > GYOMAX
' レコードを出力(REC編集処理より受け取る)
TS.WriteLine FP_EDIT_FixLngRec(GYO) ' 改行(CrLf)付き
' TS.Write FP_EDIT_FixLngRec(GYO) ' 改行(CrLf)なし
' 行を加算
GYO = GYO +
Loop
' 指定ファイルをCLOSE
TS.Close
Set TS = Nothing
Set FSO = Nothing
End Sub '*******************************************************************************
' CSV形式テキストの1レコードの編集処理
'*******************************************************************************
Private Function FP_EDIT_FixLngRec(GYO As Long) As String
Dim strREC As String ' A列(コード)は5バイトの文字列処理
strREC = FP_GET_FIXLNG(Cells(GYO, ).Value, )
' B列(メーカー)は10バイトの文字列処理
strREC = strREC & FP_GET_FIXLNG(Cells(GYO, ).Value, )
' C列(品名)は15バイトの文字列処理
strREC = strREC & FP_GET_FIXLNG(Cells(GYO, ).Value, )
' D列(数量)は4バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' E列(単価)は6バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' F列(単価)は8バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' 編集したレコード内容を戻り値にセット(計48バイト)
FP_EDIT_FixLngRec = strREC
End Function '*******************************************************************************
' 指定バイト数の固定長データ作成(文字列処理)
'*******************************************************************************
Private Function FP_GET_FIXLNG(strInText As String, _
lngFixBytes As Long) As String
Dim lngKeta As Long
Dim lngByte As Long, lngByte2 As Long, lngByte3 As Long
Dim IX As Long
Dim intCHAR As Integer
Dim strOutText As String lngKeta = Len(strInText)
strOutText = strInText
' バイト数判定
For IX = To lngKeta
' 1文字ずつ半角/全角を判断
intCHAR = Asc(Mid(strInText, IX, ))
' 全角と判断される場合はバイト数に1を加える
If ((intCHAR < ) Or (intCHAR > )) Then
lngByte2 = ' 全角
Else
lngByte2 = ' 半角
End If
' 桁あふれ判定(右切り捨て)
lngByte3 = lngByte + lngByte2
If lngByte3 >= lngFixBytes Then
If lngByte3 > lngFixBytes Then
strOutText = Left(strInText, IX - )
Else
strOutText = Left(strInText, IX)
lngByte = lngByte3
End If
Exit For
End If
lngByte = lngByte3
Next IX
' 桁不足判定(空白文字追加)
If lngByte < lngFixBytes Then
strOutText = strOutText & Space(lngFixBytes - lngByte)
End If
FP_GET_FIXLNG = strOutText
End Function
【Excel】输出固定长文本的更多相关文章
- 【Excel】读取固定长文本
'******************************************************************************* ' 固定長形式テキストファイルを読み込 ...
- POI插入图片至Excel使用固定的长宽
使用POI在Excel里插入图片,如何使插入的图片使用固定的大小?先介绍原有的两种方式: 一种是指定开始和结尾单元格,然后从头画到尾,相当于平铺 还有一种就是仅指定开始的单元格,图片的大小跟这个单元格 ...
- Bert不完全手册9. 长文本建模 BigBird & Longformer & Reformer & Performer
这一章我们来唠唠如何优化BERT对文本长度的限制.BERT使用的Transformer结构核心在于注意力机制强大的交互和记忆能力.不过Attention本身O(n^2)的计算和内存复杂度,也限制了Tr ...
- OAF 中对文字实现html效果及对超级长文本实现默认换行,对只读的messageTextInput中的内容自动换行
今天遇到一个需求,客户注册页面客户化了一个超级长的注册须知,内容很多.但是样式相对又要做起来好看点. 注册须知的内容使用多个message拼接而成. 老大说rawText支持html样式,于是我想到了 ...
- smartforms长文本处理方式
因为长文本的话不好换行,在smartforms中对于长文本的处理有两种:一种是自定义文本模板,自己定义好的文本格式,然后再使用的时候再文本类型中选择文本模板,最好是勾上如果没有文本存在怎无错误.这种方 ...
- SpringBatch Sample (四)(固定长格式文件读写)
前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作.实例延 ...
- css截断长文本显示
实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO. 而通过前端css的截断,则灵活多变,可统一运用与整个网站. 这项技术主要运用了text-overflow属性,这 ...
- ABAP程序中关于长文本的处理方法
现象描述 长文本在SAP的运用主要体现在一些notes的记录,或者一些比较长的文本的存取,比如工作流的审批意见,采购申请和采购订单的附加说明等等.如下图: 处理过程 1:SAP中所有的长文本都存在两张 ...
- <q>标签,短文本引用;<blockquote>标签,长文本引用
<q>标签,短文本引用 <q>引用文本</q>,默认显示双引号,不需要在文本中添加 <blockquote>标签,长文本引用 浏览器对<block ...
随机推荐
- 【分块】教主的魔法 @洛谷P2801/upcexam3138
时间限制: 1 Sec 内存限制: 128 MB 题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列, ...
- pygame-KidsCanCode系列jumpy-part2-加速度与摩擦力
上一节,我们整理了一个游戏开发的新框架(即:Game类),本节将运用这个框架,实现基本的加速度及摩托力效果. 先定义游戏的精灵(下面代码命名为sprites.py) from part_02.sett ...
- 微信小程序开发注意事项总结:上拉加载失效、转义字符等
1.上拉加载失效 问题背景:部分页面上拉加载失效.当使用flex布局,底部固定,中间采用自适应撑满全屏实现滚动时,发现上拉加载失效,不知道是什么原因. 解决问题: 在小程序中,官方为我们提供了原生的下 ...
- ElasticSearch 评分排序
背景 通过脚本改变评分 背景 近期有一个需求,需要对优惠券可用商品列表加个排序,只针对面值类的券不包括折扣券. 需求是这样的,假设有一张面值券 50 块钱,可用商品列表 A 100.B 40.C 10 ...
- HTTPS之acme.sh申请证书
1.关于let's encrypt和acme.sh的简介 1.1 let's encrypt Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安 ...
- Java WebSocket实现网络聊天室(群聊+私聊)
1.简单说明 在网上看到一份比较nice的基于webSocket网页聊天项目,准备看看学习学习,如是有了这篇文章!原博主博客:http://blog.csdn.net/Amayadream/artic ...
- bcrypt 加密
关于 bcrypt:1.bcrypt是不可逆的加密算法,无法通过解密密文得到明文.2.bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密 ...
- 连接postgres特别消耗cpu资源而引发的PostgreSQL性能优化考虑
由于是开发阶段,所以并没有配置postgres的参数,都是使用安装时的默认配置,以前运行也不见得有什么不正常,可是前几天我的cpu资源占用突然升高.查看进程,发现有一个postgres的进程占用CPU ...
- springboot-admin自定义事件通知
springboot-admin组建已经提供了很多开箱即用的通知器(例如邮件),但在有些业务场景下我们需要做一些企业内部的通知渠道,这就需要我们来自定义通知器. 实现其实很简单,只需要往spring注 ...
- SharePonit online 列表表单定制
1)在O365管理中心,确保启用了站点脚本定制,否则,网站不允许将页面切换到编辑模式. 2)Ribbon上,列表->表单web部件->编辑窗体 如果没有Ribbon,则到列表高级设置,启用 ...