|
Silverlight中常常用到DataGrid來(lái)展示密集數(shù)據(jù). 而常見(jiàn)應(yīng)用系統(tǒng)中我們需要把這些數(shù)據(jù)導(dǎo)入導(dǎo)出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以實(shí)現(xiàn)?
在參考大量資料后 提供參考思路如下:
A:純客戶端導(dǎo)出處理.利用Silverlight 與Javascript 進(jìn)行交互實(shí)現(xiàn)導(dǎo)出Excel。
B:服務(wù)器端導(dǎo)出.獲得DataGrid數(shù)據(jù)源. 傳遞給WCF Service到服務(wù)器端. 然后把傳回?cái)?shù)據(jù)通過(guò)ASP.NET中通用處理導(dǎo)出Excel方法加以實(shí)現(xiàn)。
方法A實(shí)現(xiàn)導(dǎo)入導(dǎo)出核心在JS腳本中. 屬于純客戶端交互. 簡(jiǎn)潔實(shí)用. 但問(wèn)題也正是源自于JS腳本. 如果對(duì)Excel數(shù)據(jù)格式進(jìn)行變動(dòng). 大家都應(yīng)該知道JS支持的調(diào)試時(shí)不容易控制的. 所以很容易出現(xiàn)腳本錯(cuò)誤. 而且每次修改起來(lái)都很麻煩費(fèi)時(shí)。
方法B也算是各位非常熟悉一種方式. 獲得數(shù)據(jù)把數(shù)據(jù)傳入ASP.NET中通用實(shí)現(xiàn)導(dǎo)出Excel方法. 加以實(shí)現(xiàn). 大部分編碼都在服務(wù)器端. 比JS要容易控制. 所以方法B相比方法A而要效率更高, 且更容易移植 修改控制。
Silverlight中有沒(méi)有其他方式來(lái)實(shí)現(xiàn)? 答案是有的.Silverlight當(dāng)在使用高級(jí)權(quán)限運(yùn)行Out-Of-Broswer[OOB]瀏覽器外應(yīng)用時(shí). Silverlight 4版本中微軟為了支持企業(yè)用戶提供類(lèi)似Office自動(dòng)化功能,引入Com+自動(dòng)化. COM+自動(dòng)化僅支持有高級(jí)信任許可的OOB Silverlight應(yīng)用,高級(jí)信任許可意味著操作者可以在少許限制的條件下,在Windows計(jì)算機(jī)上執(zhí)行幾乎所有的命令,這就對(duì)Silverlight 實(shí)現(xiàn)Excel導(dǎo)出提供了可能。
注意:當(dāng)直接點(diǎn)擊導(dǎo)出按鈕時(shí).會(huì)提示異常:"當(dāng)前上下文不支持此操作."因使用Com+自動(dòng)化需要在OOB應(yīng)用模式才具有權(quán)限操作.所以右鍵點(diǎn)擊程序選擇程序安裝:
安裝本地后自動(dòng)打開(kāi):
點(diǎn)擊導(dǎo)出到Excel按鈕 導(dǎo)出效果[有點(diǎn)粗糙]:
A:如何實(shí)現(xiàn)
頁(yè)面XAML布局:為了演示目的只有個(gè)Datagrid和一個(gè)Button按鈕如下:
1 <Grid x:Name="LayoutRoot" Background="White" Height="500" Width="707">2 <sdk:DataGrid AutoGenerateColumns="False" Margin="24,61,191,207" Name="dataGrid1">
3 <sdk:DataGrid.Columns >
4 <sdk:DataGridTextColumn Header="編 號(hào)" Binding="{Binding Id}"></sdk:DataGridTextColumn>
5 <sdk:DataGridTextColumn Header="顧客姓名" Binding="{Binding CustomerName}"></sdk:DataGridTextColumn>
6 <sdk:DataGridTextColumn Header="地 址" Binding="{Binding Address}"></sdk:DataGridTextColumn>
7 <sdk:DataGridTextColumn Header="電話號(hào)碼" Binding="{Binding Telephone}"></sdk:DataGridTextColumn>
8 </sdk:DataGrid.Columns>
9 </sdk:DataGrid>
10 <Button Content="導(dǎo)出到Excel中" Background="Red" Height="34" Margin="24,21,550,445" Name="button1" Width="133" Click="button1_Click" />
11 </Grid>
NET技術(shù):Silverlight 4中把DataGrid數(shù)據(jù)導(dǎo)出Excel—附源碼下載,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。