作成日: 2025/03/05 最終更新日: 2025/05/01
文書種別
制限事項
発生環境
15.0J
状況
回避方法あり
詳細
SaveExcelメソッドで保存したExcelの用紙設定が「Letter」になります。
用紙サイズはマイクロソフトによって定義されています。例えば、A4の場合には「9」を指定する必要があります。Excel.XlPaperSize
SPREAD for Windows Forms 12.0J以前のバージョンでは、用紙サイズを明示的に指定していない場合には「0」が指定されていました。これは上記のマイクロソフトのページと照らし合わせると不正な値ですが、Excelでは「A4」と表示されていました。
SPREAD for Windows Forms 15.0J以降では、明示的に用紙が指定されていない場合にはSPREADは用紙サイズに何も出力しませんが、Excelでは「Letter」サイズが設定されます。
回避方法
■サンプルコード(VB.NET)
Dim sheet As SheetView = FpSpread1.ActiveSheet
Dim pd As New PrintDocument()
Dim ps As PrinterSettings = pd.PrinterSettings
Dim sizeA4 As PaperSize = Nothing
For i As Integer = 0 To ps.PaperSizes.Count - 1
If ps.PaperSizes(i).Kind = PaperKind.A4 Then
sizeA4 = ps.PaperSizes(i)
Exit For
End If
Next
'用紙サイズをA4に設定
sheet.PrintInfo.PaperSize = sizeA4
FpSpread1.SaveExcel("../../test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat Or FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders)
■サンプルコード(C#)
SheetView sheet = fpSpread1.ActiveSheet;
PrintDocument pd = new PrintDocument();
PrinterSettings ps = pd.PrinterSettings;
PaperSize sizeA4 = null;
for (int i = 0; i < ps.PaperSizes.Count; i++)
{
if (ps.PaperSizes[i].Kind == PaperKind.A4)
{
sizeA4 = ps.PaperSizes[i];
break;
}
}
// 用紙サイズをA4に設定
sheet.PrintInfo.PaperSize = sizeA4;
fpSpread1.SaveExcel("../../test.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders)