PDFの保存
設定したレイアウトを維持したままPDFファイルにエクスポートすることができます。
コマンドバーにPDFボタンを表示することで、コーディングで実装する必要なく、
PDFエクスポートが実現できます。
また、シートのPrintInfoオブジェクトを設定することにより、出力範囲やヘッダ・フッタなどを
自由に設定できます。
このサンプルでは、コマンドバーのPDFボタンにより全件のデータが、「PDF出力」ボタンにより、
ドロップダウンリストで指定した範囲のデータがPDFファイルにエクスポートされます。
| ID | 氏名 | カナ | 生年月日 | 性別 | 血液型 | 部署 | 入社日 | メールアドレス |
1 | 1001 | 亀甲 滋万 | キコウ シゲマ | 1950/02/04 | 男 | A | 人事部 | 1972/04/01 | sigema_kikou@abc.co.jp |
2 | 1002 | 寒田 希世 | カンダ キヨ | 1959/06/28 | 女 | B | 人事部 | 1981/04/01 | kiyo_kanda@bbb.or.jp |
3 | 1003 | 小和瀬 澄 | オワセ キヨ | 1969/03/06 | 男 | A | 人事部 | 1991/04/01 | kiyo_owase@aaa.co.jp |
4 | 1004 | 宇夫 早余子 | ウブ サヨコ | 1976/07/28 | 女 | O | 人事部 | 1998/04/01 | sayoko_ubu@bbb.or.jp |
5 | 1005 | 宇田津 聖智 | ウダツ キヨトモ | 1965/09/04 | 男 | A | 営業部 | 1987/04/01 | kiyotomo_udatu@abc.co.jp |
6 | 1006 | 茨城 昭児 | イバラキ ショウジ | 1963/04/28 | 男 | O | 営業部 | 1985/04/01 | shouzi_ibaraki@xyz.ne.jp |
7 | 1007 | 石ヶ休 椎茄 | イシガキュウ シイナ | 1953/02/21 | 男 | O | 営業部 | 1975/04/01 | siina_isigagyuu@abc.co.jp |
8 | 1008 | 赤司 恵治郎 | アカツカサ ケイジロウ | 1968/08/02 | 男 | O | 経理部 | 1990/04/01 | keizirou_akatukasa@abc.co.jp |
9 | 1009 | 小橋 仰一 | オハシ ギョウイチ | 1972/03/02 | 男 | B | 経理部 | 1994/04/01 | gyouiti_ohasi@abc.co.jp |
10 | 1010 | 一重 公大 | イチジュウ コウダイ | 1964/04/19 | 男 | B | 経理部 | 1986/04/01 | koudai_itizyuu@xyz.ne.jp |
|
|
ソースコード
別ウィンドウで表示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class importexport_printpdf : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
return;
}
// SPREADの設定
InitSpread(FpSpread1);
// シートの設定
InitSpreadStyles(FpSpread1.Sheets[0]);
// 選択リストの設定
InitList();
}
private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
{
spread.CssClass = "spreadStyle";
spread.UseClipboard = false;
// データ連結
System.Data.DataSet ds = new System.Data.DataSet();
ds.ReadXml(MapPath("../App_Data/data50.xml"));
spread.DataSource = ds;
}
private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
{
// フォントサイズの設定
sheet.DefaultStyle.Font.Size = FontUnit.Point(10);
sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Point(10);
sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Point(10);
sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Point(10);
// 列幅の設定
sheet.Columns[0].Width = 45;
sheet.Columns[1].Width = 110;
sheet.Columns[2].Width = 110;
sheet.Columns[3].Width = 100;
sheet.Columns[4].Width = 50;
sheet.Columns[5].Width = 50;
sheet.Columns[6].Width = 50;
sheet.Columns[7].Width = 100;
sheet.Columns[8].Width = 240;
// 縦方向の揃え位置を中央に設定
sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;
FarPoint.Web.Spread.PrintInfo pi = new FarPoint.Web.Spread.PrintInfo();
//ヘッダに「カラー」「イメージ」を設定します
pi.Colors = new System.Drawing.Color[] { System.Drawing.Color.Purple, System.Drawing.Color.Green, System.Drawing.Color.Indigo };
pi.Images = new System.Drawing.Image[] { System.Drawing.Image.FromFile(MapPath("~/images/gclogo.jpg")) };
pi.Header = "/c/fz\"20\"/cl\"0\"/fb1/fu0/fi1 SPREAD for ASP.NET";
pi.Footer = "/fn\"Arial\"/fz\"10\"/cl\"1\"/fb0/fu0/fi0/dl /ds /tl "
+ "/c/fn\"Arial\"/fz\"10\"/cl\"2\"/p///pc Page /r/fn\"Times New Roman\"/fz\"14\"/cl\"1\"/fb1/fu0/fi1/g\"0\"";
pi.ShowColor = true;
pi.Centering = FarPoint.Web.Spread.Centering.Horizontal;
// マージンの設定
pi.Margin.Top = 20;
pi.Margin.Left = 30;
pi.Margin.Right = 30;
pi.Margin.Bottom = 20;
pi.Margin.Footer = 20;
pi.Margin.Header = 20;
//定義したPrintInfoオブジェクトを設定します
sheet.PrintInfo = pi;
}
private void InitList()
{
for (int i = 0; i < FpSpread1.ActiveSheetView.RowCount; i++)
{
DDLstartrowidx.Items.Add(Convert.ToString(i));
}
for (int i = 1; i < FpSpread1.ActiveSheetView.RowCount + 1; i++)
{
DDLrowcnt.Items.Add(Convert.ToString(i));
}
for (int i = 0; i < FpSpread1.ActiveSheetView.ColumnCount; i++)
{
DDLstartcolidx.Items.Add(Convert.ToString(i));
}
for (int i = 1; i < FpSpread1.ActiveSheetView.ColumnCount + 1; i++)
{
DDLcolcnt.Items.Add(Convert.ToString(i));
}
DDLrowcnt.SelectedValue = FpSpread1.ActiveSheetView.RowCount.ToString();
DDLcolcnt.SelectedValue = FpSpread1.ActiveSheetView.ColumnCount.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
// クライアント側の変更を確定
FpSpread1.SaveChanges();
int rowidx = Convert.ToInt16(DDLstartrowidx.SelectedValue);
int colidx = Convert.ToInt16(DDLstartcolidx.SelectedValue);
int rowcnt = Convert.ToInt16(DDLrowcnt.SelectedValue);
int colcnt = Convert.ToInt16(DDLcolcnt.SelectedValue);
FpSpread1.ActiveSheetView.PrintInfo.PrintType = FarPoint.Web.Spread.PrintType.CellRange;
FpSpread1.ActiveSheetView.PrintInfo.RowStart = rowidx;
FpSpread1.ActiveSheetView.PrintInfo.RowEnd = rowidx + rowcnt - 1;
FpSpread1.ActiveSheetView.PrintInfo.ColStart = colidx;
FpSpread1.ActiveSheetView.PrintInfo.ColEnd = colidx + colcnt - 1;
FpSpread1.SavePdfToResponse("spread.pdf");
}
}
|
Partial Class importexport_printpdf
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then
Return
End If
' SPREADの設定
InitSpread(FpSpread1)
' シートの設定
InitSpreadStyles(FpSpread1.Sheets(0))
' 選択リストの設定
InitList()
End Sub
Private Sub InitSpread(ByVal spread As FarPoint.Web.Spread.FpSpread)
spread.CssClass = "spreadStyle"
spread.UseClipboard = False
' データ連結
Dim ds As New System.Data.DataSet()
ds.ReadXml(MapPath("../App_Data/data50.xml"))
spread.DataSource = ds
End Sub
Private Sub InitSpreadStyles(ByVal sheet As FarPoint.Web.Spread.SheetView)
' フォントサイズの設定
sheet.DefaultStyle.Font.Size = FontUnit.Point(10)
sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Point(10)
sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Point(10)
sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Point(10)
' 列幅の設定
sheet.Columns(0).Width = 45
sheet.Columns(1).Width = 110
sheet.Columns(2).Width = 110
sheet.Columns(3).Width = 100
sheet.Columns(4).Width = 50
sheet.Columns(5).Width = 50
sheet.Columns(6).Width = 50
sheet.Columns(7).Width = 100
sheet.Columns(8).Width = 240
' 縦方向の揃え位置を中央に設定
sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle
Dim pi As New FarPoint.Web.Spread.PrintInfo()
'ヘッダに「カラー」「イメージ」を設定します
pi.Colors = New System.Drawing.Color() {System.Drawing.Color.Purple, System.Drawing.Color.Green, System.Drawing.Color.Indigo}
pi.Images = New System.Drawing.Image() {System.Drawing.Image.FromFile(MapPath("~/images/gclogo.jpg"))}
pi.Header = "/c/fz""20""/cl""0""/fb1/fu0/fi1 SPREAD for ASP.NET"
pi.Footer = "/fn""Arial""/fz""10""/cl""1""/fb0/fu0/fi0/dl /ds /tl " & "/c/fn""Arial""/fz""10""/cl""2""/p///pc Page /r/fn""Times New Roman""/fz""14""/cl""1""/fb1/fu0/fi1/g""0"""
pi.ShowColor = True
pi.Centering = FarPoint.Web.Spread.Centering.Horizontal
' マージンの設定
pi.Margin.Top = 20
pi.Margin.Left = 30
pi.Margin.Right = 30
pi.Margin.Bottom = 20
pi.Margin.Footer = 20
pi.Margin.Header = 20
'定義したPrintInfoオブジェクトを設定します
sheet.PrintInfo = pi
End Sub
Private Sub InitList()
For i As Integer = 0 To FpSpread1.ActiveSheetView.RowCount - 1
DDLstartrowidx.Items.Add(Convert.ToString(i))
Next
For i As Integer = 1 To FpSpread1.ActiveSheetView.RowCount
DDLrowcnt.Items.Add(Convert.ToString(i))
Next
For i As Integer = 0 To FpSpread1.ActiveSheetView.ColumnCount - 1
DDLstartcolidx.Items.Add(Convert.ToString(i))
Next
For i As Integer = 1 To FpSpread1.ActiveSheetView.ColumnCount
DDLcolcnt.Items.Add(Convert.ToString(i))
Next
DDLrowcnt.SelectedValue = FpSpread1.ActiveSheetView.RowCount.ToString()
DDLcolcnt.SelectedValue = FpSpread1.ActiveSheetView.ColumnCount.ToString()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
' クライアント側の変更を確定
FpSpread1.SaveChanges()
Dim rowidx As Integer = Convert.ToInt16(DDLstartrowidx.SelectedValue)
Dim colidx As Integer = Convert.ToInt16(DDLstartcolidx.SelectedValue)
Dim rowcnt As Integer = Convert.ToInt16(DDLrowcnt.SelectedValue)
Dim colcnt As Integer = Convert.ToInt16(DDLcolcnt.SelectedValue)
FpSpread1.ActiveSheetView.PrintInfo.PrintType = FarPoint.Web.Spread.PrintType.CellRange
FpSpread1.ActiveSheetView.PrintInfo.RowStart = rowidx
FpSpread1.ActiveSheetView.PrintInfo.RowEnd = rowidx + rowcnt - 1
FpSpread1.ActiveSheetView.PrintInfo.ColStart = colidx
FpSpread1.ActiveSheetView.PrintInfo.ColEnd = colidx + colcnt - 1
FpSpread1.SavePdfToResponse("spread.pdf")
End Sub
End Class
|
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="printpdf.aspx.cs" Inherits="importexport_printpdf" %>
<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<table>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="PDF出力" OnClick="Button1_Click" />
</td>
<td>先頭行idx</td>
<td>
<asp:DropDownList ID="DDLstartrowidx" runat="server" AutoPostBack="false">
</asp:DropDownList>
</td>
<td> </td>
<td>先頭列idx</td>
<td>
<asp:DropDownList ID="DDLstartcolidx" runat="server" AutoPostBack="false">
</asp:DropDownList>
</td>
<td> </td>
<td>行数</td>
<td>
<asp:DropDownList ID="DDLrowcnt" runat="server" AutoPostBack="false">
</asp:DropDownList>
</td>
<td> </td>
<td>列数</td>
<td>
<asp:DropDownList ID="DDLcolcnt" runat="server" AutoPostBack="false">
</asp:DropDownList>
</td>
</tr>
</table>
<FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid"
BorderWidth="1px">
<CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
ButtonShadowColor="ControlDark" ShowPDFButton="True">
<Background BackgroundImageUrl="SPREADCLIENTPATH:/img/cbbg.gif"></Background>
</CommandBar>
<Sheets>
<FarPoint:SheetView SheetName="Sheet1">
</FarPoint:SheetView>
</Sheets>
<TitleInfo BackColor="#E7EFF7" ForeColor="" HorizontalAlign="Center" VerticalAlign="NotSet" Font-Size="X-Large"></TitleInfo>
</FarPoint:FpSpread>
</asp:Content>
|