私はExcelを基本的ではあるが非常に実用的なオフライングリッドデータベースとして使用しています。必要に応じて、Excelファイルがアップロードされ、mySQLデータベースが作成されます。Excelセルの最大文字数を削除/超過/超過/超過Excel
これで、base64をエンコードして文字列をセルに保存することで、画像にサポートが追加されました(mySQLはBLOBレコードを埋めるためにセルの内容を使用します)。
Excelセルの最大長が32,767文字であるケースを解決したいと思います(base64でエンコードされた画像の結果文字列に32,767文字以上があることがあります)。
私は
With Range("R3:R1000").Validation
.Delete
.Add Type:=xlValidateTextLength, _
Operator:=xlBetween, _
Formula1:="0", _
Formula2:="3000000"
.IgnoreBlank = True
.ShowError = False
End With
を次のように「データの検証」オプションを使用してカスタムセルの検証を設定することにより、この制限を克服しようとしたが、セルの内容は、まだ32,767文字で切り捨てられます。それに応じてTextBox
プロパティMaxLength
を設定しました。
ところで、TextBoxに画像base64をエンコードして、TextBoxからオンラインbase64画像デコーダに文字列をコピー/ペーストすると、画像は完全にデコードされます。セルの内容を取得して同じ文字列をコピー/ペーストすると、32,767文字で切り捨てられた画像になります。
TextBoxの内容をセルにコピーすると問題が発生します。これは、克服すべきまたは除去すべき細胞の最大長さ32,767であることを確認する。
私はあなたがその限界で立ち往生していると思います - https://support.office.com/en-us/article/Excel-specifications-and-limits-ca36e2dc-1f09-4620-b726-67c00b05040fを参照してください。おそらく2つのセルを使用し、それらをmySQLで一緒に連結しますか? –
Uhmmm ...それはアイデアかもしれない。 'data validation'メニューの' text lenght'が何のために使われているのかまだ分かりません。 – Nicero
これは、セルに入力できる文字数を制限しています - あなたのコード例では0と許可されている最大文字数を許すと思います。 –