Open XML(.xlsx)形式ファイルにエクスポートする際、改行コードのキャリッジリターン (CR)が削除されない
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
SPREAD for Windows Formsでは、改行コード(CR+LF)のキャリッジリターン (CR)を削除してExcelファイルにエクスポートしますが、Open XML(.xlsx)形式ファイルでは、キャリッジリターンが削除されません。
Open XML(.xlsx)形式ファイルでも、キャリッジリターンが削除されるのが本来の動作です。
Open XML(.xlsx)形式ファイルでも、キャリッジリターンが削除されるのが本来の動作です。
回避方法
Service Pack 5(v7.0.2018.2008)で修正済み。
Service Pack 5(v7.0.2018.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
明示的に文字列内の改行コード(CR+LF)をラインフィード (LF) に変換します。
【サンプルコード】
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'【対応策】
Using spread As New FarPoint.Win.Spread.FpSpread()
spread.Visible = False
Me.Controls.Add(spread)
Dim sheet As New FarPoint.Win.Spread.SheetView("Sheet1")
sheet = FpSpread1.ActiveSheet.Clone()
For i As Integer = 0 To sheet.RowCount - 1
For j As Integer = 0 To sheet.ColumnCount - 1
Dim value As Object = sheet.GetValue(i, j)
If String.Concat(value).Contains(vbCr & vbLf) Then
value = String.Concat(value).Replace(vbCr & vbLf, vbLf)
sheet.SetValue(i, j, value)
End If
Next
Next
sheet.Protect = False
spread.Sheets.Add(sheet)
spread.SaveExcel("test2.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
Me.Controls.Remove(spread)
End Using
End Sub
Service Pack 5(v7.0.2018.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
明示的に文字列内の改行コード(CR+LF)をラインフィード (LF) に変換します。
【サンプルコード】
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'【対応策】
Using spread As New FarPoint.Win.Spread.FpSpread()
spread.Visible = False
Me.Controls.Add(spread)
Dim sheet As New FarPoint.Win.Spread.SheetView("Sheet1")
sheet = FpSpread1.ActiveSheet.Clone()
For i As Integer = 0 To sheet.RowCount - 1
For j As Integer = 0 To sheet.ColumnCount - 1
Dim value As Object = sheet.GetValue(i, j)
If String.Concat(value).Contains(vbCr & vbLf) Then
value = String.Concat(value).Replace(vbCr & vbLf, vbLf)
sheet.SetValue(i, j, value)
End If
Next
Next
sheet.Protect = False
spread.Sheets.Add(sheet)
spread.SaveExcel("test2.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)
Me.Controls.Remove(spread)
End Using
End Sub