需求:
我们需要把界面上的数据列表保存为Excel工作簿。
解决方案:
AutomationFactory :提供对已注册的自动化服务器的访问。
CreateObject(String):激活具有指定的编程标识符 (ProgID) 的已注册自动化服务器并返回对它的引用。
效果:
xaml代码:(基本不需要写,全是用C#代码写的)
<
Grid
x:Name
="LayoutRoot"
Background
="White"
>
</ Grid >
</ Grid >
cs代码:
public
MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded( object sender, RoutedEventArgs e)
{
// 指示SilverLight自动化功能是否可以用于程序
if ( ! AutomationFactory.IsAvailable) return ;
// 创建一个Excel工程
var excel = AutomationFactory.CreateObject( " Excel.Application " );
excel.Visible = true ;
// 创建一个Excel 工作薄
var workbook = excel.workbooks;
workbook.Add();
// 获取默认工作表(第一个)
var sheet = excel.ActiveSheet;
var i = 1 ;
// 要写入Excel表格的数据
var data = new double [] { 1.0 , 5.0 , 9.5 , 2.7 , 3.2 , 0.6 };
// 将数据写入Excel表格
foreach (var d in data)
{
// 为第一列第i行写入数据
var cell = sheet.Cells[i, 1 ];
cell.Value = " 第 " + i + " 行 " ;
// 列宽设置为10
cell.ColumnWidth = 10 ;
// 为第二列第i行写入数据
cell = sheet.Cells[i, 2 ];
cell.Value = d;
i ++ ;
}
}
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded( object sender, RoutedEventArgs e)
{
// 指示SilverLight自动化功能是否可以用于程序
if ( ! AutomationFactory.IsAvailable) return ;
// 创建一个Excel工程
var excel = AutomationFactory.CreateObject( " Excel.Application " );
excel.Visible = true ;
// 创建一个Excel 工作薄
var workbook = excel.workbooks;
workbook.Add();
// 获取默认工作表(第一个)
var sheet = excel.ActiveSheet;
var i = 1 ;
// 要写入Excel表格的数据
var data = new double [] { 1.0 , 5.0 , 9.5 , 2.7 , 3.2 , 0.6 };
// 将数据写入Excel表格
foreach (var d in data)
{
// 为第一列第i行写入数据
var cell = sheet.Cells[i, 1 ];
cell.Value = " 第 " + i + " 行 " ;
// 列宽设置为10
cell.ColumnWidth = 10 ;
// 为第二列第i行写入数据
cell = sheet.Cells[i, 2 ];
cell.Value = d;
i ++ ;
}
}
大功告成!!!
作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/ 联系我,非常感谢。