- 浏览: 216845 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhangwei412827_:
[flash=200,200][/flash]
js 关键字 in 的使用方法 -
flycatdeng:
.classpath文件在哪里?
AndEngine示例运行环境搭建过程 -
revol:
请问,你是如何调用LSMessage,并弹出窗口的?
Silverlight模拟MSN和QQ即时提示消息框
首先需要引用Microsoft.CSharp.dll 和 System.Core.dll。
然后需要脱离浏览器才能运行调试
判断“是否脱离浏览器”和“提升信任”的方法
if (!Application.Current.IsRunningOutOfBrowser) { LSWindow.Alert("Excel导入功能必须在脱离浏览器环境下运行!"); return; } if (!Application.Current.HasElevatedPermissions) { LSWindow.Alert("用户的应用信任权限不足,不可访问用户本地资源!"); return; }
整个代码如下:
LSOOBXlsFactory.cs
namespace Longshine.SLLib.LSOOBExcel { public class LSOOBXlsFactory { private static LSOOBXlsFactory instance = null; private LSOOBXlsFactory() { instance = new LSOOBXlsFactory(); } public static LSOOBXlsApplication CreateExcelApplication() { return new LSOOBXlsApplication(); } } }
LSOOBXlsApplication.cs
using System.Runtime.InteropServices.Automation; using System.Reflection; using System; using System.IO; using System.Runtime.InteropServices; namespace Longshine.SLLib.LSOOBExcel { public class LSOOBXlsApplication { dynamic excel = null; public LSOOBXlsApplication() { excel = AutomationFactory.CreateObject("Excel.Application"); } /// <summary> /// 是否打开Excel程序 /// </summary> public bool IsOpen { get { return excel.Visible; } set { excel.Visible = value; } } /// <summary> /// 打开Excel工作薄 /// </summary> /// <param name="fileName">Excel文件全路径</param> /// <param name="isOpenApplication">是否要打开Excel程序</param> /// <returns></returns> public LSOOBXlsWorkbook OpenWorkbook(FileStream fs, string extension) { string tempPath = LSOOBXlsHelper.GetSpecialFolderPath(Environment.SpecialFolder.MyDocuments); string fileName = LSOOBXlsHelper.CopyFileToTemp(fs, tempPath, extension); LSOOBXlsWorkbook workBook = new LSOOBXlsWorkbook(); workBook.WorkBook = excel.Workbooks.Open(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value ); return workBook; } /// <summary> /// 关闭Excel /// </summary> public void Close() { if (excel != null) { excel.Workbooks.Close(); excel.Quit(); excel = null; GC.Collect(); } } /// <summary> /// 设置是否Alert /// </summary> public bool DisplayAlerts { get { return excel.DisplayAlerts; } set { excel.DisplayAlerts = value; } } } }
LSOOBXlsWorkbook.cs
using System; using System.Collections.Generic; namespace Longshine.SLLib.LSOOBExcel { public class LSOOBXlsWorkbook { private dynamic workBook = null; private List<LSOOBXlsWorkSheet> workSheets = null; public LSOOBXlsWorkbook() { } public dynamic WorkBook { get { return workBook; } set { if (value != null) { workBook = value; workSheets = new List<LSOOBXlsWorkSheet>(); int sheetCount = WorkSheetsCount; for (int i = 1; i <= sheetCount; i++) { LSOOBXlsWorkSheet sheet = new LSOOBXlsWorkSheet(); sheet.WorkSheet = workBook.Worksheets[i]; workSheets.Add(sheet); } } } } /// <summary> /// 获得当前活动的工作页 /// </summary> public LSOOBXlsWorkSheet ActiveSheet { get { LSOOBXlsWorkSheet currentSheet = new LSOOBXlsWorkSheet(); currentSheet.WorkSheet = workBook.ActiveSheet; return currentSheet; } } /// <summary> /// 获得指定工作页 /// </summary> /// <param name="?"></param> /// <returns></returns> public LSOOBXlsWorkSheet GetSheet(string sheetName) { LSOOBXlsWorkSheet currentSheet = null; foreach (var s in workSheets) { if (sheetName == s.Name) currentSheet = s; } return currentSheet; } public LSOOBXlsWorkSheet GetSheet(int sheetIndex) { LSOOBXlsWorkSheet currentSheet = new LSOOBXlsWorkSheet(); currentSheet.WorkSheet = workBook.Worksheets(sheetIndex); return currentSheet; } /// <summary> /// 获得工作页列表 /// </summary> public List<LSOOBXlsWorkSheet> WorkSheets { get { return workSheets; } } /// <summary> /// 获得工作页的个数 /// </summary> public int WorkSheetsCount { get { return workBook.Worksheets.Count; } } /// <summary> /// 增加工作页 /// </summary> /// <param name="sheetName"></param> /// <returns></returns> public LSOOBXlsWorkSheet AddSheet(string sheetName) { dynamic newSheet = workBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); newSheet.Name = sheetName; LSOOBXlsWorkSheet sheet = new LSOOBXlsWorkSheet(); sheet.WorkSheet = newSheet; workSheets.Add(sheet); return sheet; } /// <summary> /// 删除工作页 /// </summary> /// <param name="sheetName"></param> public void RemoveSheet(string sheetName) { // GetSheet(sheetName).Delete(); } /// <summary> /// 保存Excel /// </summary> public void Save() { workBook.Save(); } /// <summary> /// 关闭Excel /// </summary> public void Close() { workBook.Close(Type.Missing, Type.Missing, Type.Missing); } } }
LSOOBXlsWorkSheet.cs
namespace Longshine.SLLib.LSOOBExcel { public class LSOOBXlsWorkSheet { dynamic workSheet = null; public LSOOBXlsWorkSheet() { } public dynamic WorkSheet { get { return workSheet; } set { if (value != null) workSheet = value; } } /// <summary> /// 设置或获取工作页的名称 /// </summary> public string Name { get { return workSheet.Name; } set { if (!string.IsNullOrEmpty(value)) workSheet.Name = value; } } public void Delete() { workSheet.Delete(); } /// <summary> /// 激活该工作页 /// </summary> public void Activate() { workSheet.Activate(); } /// <summary> /// 获取指定的单元格 /// </summary> /// <param name="row"></param> /// <param name="column"></param> /// <returns></returns> public LSOOBXlsCell GetCell(int row, int column) { LSOOBXlsCell cell = new LSOOBXlsCell(); dynamic c = workSheet.Cells(row, column); cell.Cell = c; return cell; } /// <summary> /// 获取指定的区域 /// </summary> /// <param name="range"></param> /// <returns></returns> public LSOOBXlsRange GetRange(string range) { LSOOBXlsRange rang = new LSOOBXlsRange(); dynamic r = workSheet.Range(range); rang.Range = r; return rang; } /// <summary> /// 获取指定的区域 /// </summary> /// <param name="fromCell">开始指定的单元格</param> /// <param name="toCell">结束指定的单元格</param> /// <returns></returns> public LSOOBXlsRange GetRange(string fromCell, string toCell) { return GetRange(fromCell + ":" + toCell); } /// <summary> /// 获取使用中的区域 /// </summary> /// <returns></returns> public LSOOBXlsRange GetUsedRange() { LSOOBXlsRange rang = new LSOOBXlsRange(); dynamic r = workSheet.UsedRange; rang.Range = r; return rang; } /// <summary> /// 获取指定的列 /// </summary> /// <param name="columnName"></param> /// <returns></returns> public LSOOBXlsColumn GetColumn(string columnName) { LSOOBXlsColumn column = new LSOOBXlsColumn(); dynamic c = workSheet.Columns(columnName); column.Column = c; return column; } /// <summary> /// 插入一行 /// </summary> /// <param name="rowIndex"></param> public void InsertRow(int rowIndex) { workSheet.Rows[rowIndex].Insert(); } /// <summary> /// 插入一列 /// </summary> /// <param name="columnIndex"></param> public void InsertColumn(int columnIndex) { workSheet.Columns[columnIndex].Insert(); } /// <summary> /// 删除一行 /// </summary> /// <param name="rowIndex"></param> public void DeleteRow(int rowIndex) { workSheet.Rows[rowIndex].Delete(); } /// <summary> /// 删除一列 /// </summary> /// <param name="columnIndex"></param> public void DeleteColumn(int columnIndex) { workSheet.Columns[columnIndex].Delete(); } } }
LSOOBXlsCell.cs
namespace Longshine.SLLib.LSOOBExcel { public class LSOOBXlsCell { dynamic cell = null; public LSOOBXlsCell() { } public dynamic Cell { get { return cell; } set { if (value != null) cell = value; } } /// <summary> /// 值 /// </summary> public object Value { get { return cell.Value; } set { if (value != null) cell.Value = value; } } /// <summary> /// 列宽 /// </summary> public int ColumnWidth { get { return cell.ColumnWidth; } set { cell.ColumnWidth = value; } } /// <summary> /// 是否加粗 /// </summary> public bool FontBold { get { return cell.Font.Bold; } set { cell.Font.Bold = value; } } public int FontSize { get { return cell.Font.Size; } set { cell.Font.Size = value; } } } }
发表评论
-
有关试用Silverlight OOB模式遇到的一些问题
2010-10-21 13:27 37441、自动更新OOB模式的问题以及怎样避免需要数字签名 ... -
Silverlight中文字体问题的解决方案
2010-10-20 11:37 2504在没有装开发环境的机器上运行Silverlight 的时候,中 ... -
SLLambdaParser For Silverlight
2010-08-23 11:53 1196将 LambdaParser 开源项目整合到Silverl ... -
Silverlight使用Com组件操作Excel的封装类(3)使用方法
2010-08-07 11:08 2789//方法1 //打开excel publi ... -
Silverlight使用Com组件操作Excel的封装类(2)
2010-08-07 11:03 2835LSOOBXlsHelper.cs using System ...
相关推荐
silverlight silverlight4 打开excel 浏览excel
silverlight中导入和导出Excel的源代码
因为SilverLight没办法引用system.data,所以无法使用底层调用Access数据库,使用ADO方式能实现比较快速的访问Access数据库
silverlight 将DataGrid数据导出EXCEL
Silverlight导入导出到Excel
Silverlight中Accordion组件动态生成,Silverlight4的版本
Silverlight4中上传EXCEL并将EXCEL文件数据插入到SQL数据库中
Silverlight 导出excel
可以实现在Web端无需事先手工编写或自动创建任何程序代码和数据实体类的情况下, 便可在Silverlight端对Web端数据库进行增加、删除、修改、查询等数据操作。此外, 还支持访问数据库的存储过程(StoredProcdures)、视图...
Silverlight 4提供了访问COM对象的API,允许开发人员通过Silverlight应用访问Notepad,Word,Excel 或者 Outlook。 本例将演示Silverlight 4打开Excel。
silverlight 读取excel 加载到datagrid
Silverlight4下使用Excel的DLL文件。可以直接使用。
免费的带有源码的仪表盘组件,可根据个人喜好。自己修改代码,实现更加炫的效果~ 希望你做的更好啊!
silverlight导出数据到EXCEL,解决中文乱码,以及科学计数法的问题
在Web端无需事先手工编写或自动创建任何程序代码和数据实体类, 便可在Silverlight端对Web端数据库进行增加、删除、修改、查询等数据操作。此外, 还支持访问数据库的存储过程(StoredProcdures)、视图(Views)、自定义...
silverlight 将指定的文件上传至ListBox,并导出至EXCEL
压缩包里的内容: 1.SilverLight 文件上传组件 2.完成的代码示例; 代码更新请关注: http://weed.yuety.org
针对于在安装Silverlight的时候总是提示安装Silverlight5_Tools错误,其实这并不是软件安装顺序的问题,也不是修改Silverlight5_Tools文件的问题
Silverlight与WCF同步操作,通过修改实体属性,或回调函数,返回值结果或状态。
此封装使用JSON作为中间协议,以最简方式达到目标。可以转换日常使用中的任意复杂类型通信,成功解决C# DateTime和Java Date传递问题,解决java容器泛型与C#容器泛型转换问题,解决复杂对象问题(对象属性是另外对象...