作成日: 2016/07/04 最終更新日: 2016/07/04
文書種別
不具合
状況
回避方法あり
詳細
テキストのフォントを「Arial」にし、改行を含んだRTFテキストを設定したExcelファイルを、C1XLBookのLoadメソッドを用いてロードしてRichTextBoxにRTF形式で取得し、Labelコントロールなどに表示すると、テキストの改行が行われず、また最後の行の一部が表示されません。
回避方法
◎サンプルコード(VB)
◎サンプルコード(C#)
Dim rows As New List(Of String)
Dim rtfTextBox As New RichTextBox()
For stNo As Integer = 0 To bk.Sheets.Count - 1
Dim st = bk.Sheets(stNo)
'Sheetが存在しなければ、Return
If st Is Nothing Then Exit For
'A列の値を取得
For row As Integer = 0 To st.Rows.Count - 1
'返却用文字列
Dim cellText As String
'リッチテキストの場合はテキストのみ返す。
Try
' 取得したRTFで、改行関連コード("¥pard"、"¥par"、"¥par ")を以下のように置き換え
Dim strVal = CStr(st(row, 0).Value)
strVal = strVal.Replace("¥pard", "■")
strVal = strVal.Replace("¥par", "¥par ")
strVal = strVal.Replace("¥par ", "¥par ")
strVal = strVal.Replace("■", "¥pard")
rtfTextBox.Rtf = strVal
Dim plaintext = rtfTextBox.Text
cellText = plaintext.Replace(vbLf, vbCrLf)
Catch ex As Exception
cellText = st(row, 0).Text
End Try
rows.Add(cellText)
Next
Next
Dim rtfTextBox As New RichTextBox()
For stNo As Integer = 0 To bk.Sheets.Count - 1
Dim st = bk.Sheets(stNo)
'Sheetが存在しなければ、Return
If st Is Nothing Then Exit For
'A列の値を取得
For row As Integer = 0 To st.Rows.Count - 1
'返却用文字列
Dim cellText As String
'リッチテキストの場合はテキストのみ返す。
Try
' 取得したRTFで、改行関連コード("¥pard"、"¥par"、"¥par ")を以下のように置き換え
Dim strVal = CStr(st(row, 0).Value)
strVal = strVal.Replace("¥pard", "■")
strVal = strVal.Replace("¥par", "¥par ")
strVal = strVal.Replace("¥par ", "¥par ")
strVal = strVal.Replace("■", "¥pard")
rtfTextBox.Rtf = strVal
Dim plaintext = rtfTextBox.Text
cellText = plaintext.Replace(vbLf, vbCrLf)
Catch ex As Exception
cellText = st(row, 0).Text
End Try
rows.Add(cellText)
Next
Next
◎サンプルコード(C#)
List rows = new List();
RichTextBox rtfTextBox = new RichTextBox();
for (int stNo = 0; stNo <= bk.sheets.count="bk.Sheets.Count" -="-" 1;="1;" stno++)="stNo++)" {="{">
dynamic st = bk.Sheets[stNo];
//Sheetが存在しなければ、Return
if (st == null)
break; // TODO: might not be correct. Was : Exit For
//A列の値を取得
for (int row = 0; row <= st.rows.count="st.Rows.Count" -="-" 1;="1;" row++)="row++)" {="{">
//返却用文字列
string cellText = null;
//リッチテキストの場合はテキストのみ返す。
try {
// 取得したRTFで、改行関連コード("¥pard"、"¥par"、"¥par ")を以下のように置き換え
dynamic strVal = Convert.ToString(st[row, 0].Value);
strVal = strVal.Replace("¥¥pard", "■");
strVal = strVal.Replace("¥¥par", "¥¥par ");
strVal = strVal.Replace("¥¥par ", "¥¥par ");
strVal = strVal.Replace("■", "¥¥pard");
rtfTextBox.Rtf = strVal;
dynamic plaintext = rtfTextBox.Text;
cellText = plaintext.Replace(Constants.vbLf, Constants.vbCrLf);
} catch (Exception ex) {
cellText = st[row, 0].Text;
}
rows.Add(cellText);
}
}
RichTextBox rtfTextBox = new RichTextBox();
for (int stNo = 0; stNo <= bk.sheets.count="bk.Sheets.Count" -="-" 1;="1;" stno++)="stNo++)" {="{">
dynamic st = bk.Sheets[stNo];
//Sheetが存在しなければ、Return
if (st == null)
break; // TODO: might not be correct. Was : Exit For
//A列の値を取得
for (int row = 0; row <= st.rows.count="st.Rows.Count" -="-" 1;="1;" row++)="row++)" {="{">
//返却用文字列
string cellText = null;
//リッチテキストの場合はテキストのみ返す。
try {
// 取得したRTFで、改行関連コード("¥pard"、"¥par"、"¥par ")を以下のように置き換え
dynamic strVal = Convert.ToString(st[row, 0].Value);
strVal = strVal.Replace("¥¥pard", "■");
strVal = strVal.Replace("¥¥par", "¥¥par ");
strVal = strVal.Replace("¥¥par ", "¥¥par ");
strVal = strVal.Replace("■", "¥¥pard");
rtfTextBox.Rtf = strVal;
dynamic plaintext = rtfTextBox.Text;
cellText = plaintext.Replace(Constants.vbLf, Constants.vbCrLf);
} catch (Exception ex) {
cellText = st[row, 0].Text;
}
rows.Add(cellText);
}
}
旧文書番号
81717