私はSilverlightを初めて使用します。
Silverlight 3、SQL Server 2005 で VS-2008 を使用しています。
私の要件は次のとおりです。データベースからデータを取得し、Excel にエクスポートする必要があります。
Google で検索しましたが、要件を満たすための適切なリンクや資料が得られません。
誰かが私にそれを行う方法を教えてもらえますか?
よろしくお願いします。
私はSilverlightを初めて使用します。
Silverlight 3、SQL Server 2005 で VS-2008 を使用しています。
私の要件は次のとおりです。データベースからデータを取得し、Excel にエクスポートする必要があります。
Google で検索しましたが、要件を満たすための適切なリンクや資料が得られません。
誰かが私にそれを行う方法を教えてもらえますか?
よろしくお願いします。
最も簡単な方法は、NPOI (npoi.codeplex.com) を使用することです。
基本的に、xaml で次のイベントを定義できます。
private void Button_Click(object sender, RoutedEventArgs e) { WebClient client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); client.DownloadStringAsync(new Uri("DownloadFile.aspx", UriKind.Absolute)); }
サーバー プロジェクト ページの DownloadFile.aspx で次のようにします。
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.UserModel;
public partial class DownloadFile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string filename = "test.xls";
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", filename));
Response.Clear();
InitializeWorkbook();
GenerateData();
Response.BinaryWrite(WriteToStream().GetBuffer());
Response.End();
}
HSSFWorkbook hssfworkbook;
MemoryStream WriteToStream()
{
//Write the stream data of workbook to the root directory
MemoryStream file = new MemoryStream();
hssfworkbook.Write(file);
return file;
}
void GenerateData()
{
Sheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
sheet1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");
int x = 1;
for (int i = 1; i <= 15; i++)
{
Row row = sheet1.CreateRow(i);
for (int j = 0; j < 15; j++)
{
// add you data from the db
row.CreateCell(j).SetCellValue(x++);
}
}
}
void InitializeWorkbook()
{
hssfworkbook = new HSSFWorkbook();
////create a entry of DocumentSummaryInformation
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = "NPOI Team";
hssfworkbook.DocumentSummaryInformation = dsi;
////create a entry of SummaryInformation
SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Subject = "NPOI SDK Example";
hssfworkbook.SummaryInformation = si;
}
}
NPOI リリースのサンプルも確認してください。お役に立てば幸いです。
ソース: http://go4answers.webhost4life.com/Question/easiest-npoi-codeplex-basically-define-817046.aspx