Excel从另一个Excel文件中用户自定义区域(UsedRange)拷贝数据和行高、列宽
2011-12-09 14:10
477 查看
实现环境:Visual Studio 2010, Office 2010, VSTO 4.0, .NET Framework 4.0
相关资源:http://download.csdn.net/detail/tx_officedev/3900007
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Tools.Ribbon; using Excel = Microsoft.Office.Interop.Excel; using System.Windows.Forms; namespace ExcelAddIn8 { public partial class Ribbon1 { private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { } /// <summary> /// 在下面的动作中,将从选中的文件中的用户自定义区域(UsedRange)中拷贝 /// 数据到现在这个WorkSheet中并根据选中文件中UsedRange的行高列宽来设定被 /// 粘贴数据区域的行高列宽。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, RibbonControlEventArgs e) { var missing = Type.Missing; string SourcePath = string.Empty; Excel.Application objApplication = Globals.ThisAddIn.Application; Excel.Application objSourceApplication = new Excel.Application(); Excel.Workbook objTargetWorkbook = objApplication.ActiveWorkbook; OpenFileDialog objOpenFileDialog = new OpenFileDialog(); objOpenFileDialog.Filter = "Excel Document(.xlsx)|*.xlsx"; objOpenFileDialog.ShowDialog(); SourcePath = objOpenFileDialog.FileName; if (SourcePath.Length > 0) { Excel.Workbook objSourceWorkbook = objSourceApplication .Workbooks.Open(SourcePath, missing, missing, missing, missing,missing,missing,missing, missing, missing, missing, missing, missing,missing, missing); Excel.Worksheet objWorkSheet = objSourceWorkbook.Worksheets[1]; objWorkSheet.UsedRange.Copy(missing); Excel.Worksheet objTargetSheet = objTargetWorkbook.ActiveSheet; if (objTargetSheet != null) { objTargetSheet.Paste(); Excel.Range objTargetRange = objApplication.ActiveCell; //以下代码用来重新设定Range区域,使之与源文件中的UsedRange范 //围相当。 objTargetRange = objTargetSheet.Range[objTargetSheet.Cells [objTargetRange.Row, objTargetRange.Column], objTargetSheet.Cells[objTargetRange.Row + objWorkSheet.UsedRange.Rows.Count-1, objTargetRange.Column + objWorkSheet.UsedRange.Columns.Count]]; //根据UsedRange的列宽来设置选定区域的列宽。 objTargetRange.ColumnWidth = objWorkSheet.UsedRange .ColumnWidth; //根据UsedRange的行高来设置选定区域的行高。 objTargetRange.RowHeight = objWorkSheet.UsedRange.RowHeight; } } ((Excel._Application)objSourceApplication).Quit(); objSourceApplication = null; } } }
相关资源:http://download.csdn.net/detail/tx_officedev/3900007
相关文章推荐
- Excel从另一个Excel文件中用户自定义区域(UsedRange)拷贝数据和行高、列宽
- oracle11g 将某个用户下的数据导出成.bmp格式的文件,并将该文件导入到另一个库中
- 游标、获取本地本地多个文件、Excel数据导入、跨服务器数据拷贝、行转列示例
- mysql与Oracle垃圾用户方案临时给的excel文件数据批量数据导入库操作步骤整理
- 大数据早报:Lendingkart获2500万美元融资 卡巴斯基承认从用户电脑拷贝过和病毒无关文件(11.7)
- VBA 从一个Excel文件复制一行数据到另一个Excel文件
- Excel:将包含某列部分数据的另一个表格中其它列拷贝至当前表格
- ASP.NET编程插入Excel文件到word中数据区域
- VBA 从一个Excel文件复制一行数据到另一个Excel文件
- JAVA编程插入Excel文件到Word数据区域
- c# Aspose 图片处理(将Excel单元格中的图片拷贝到另一个Excel文件中)
- Linux下如何将一个用户下的文件拷贝到另一个用户里
- JAVA编程插入Excel文件到Word数据区域
- 数据驱动在QTP中的运用(二) - 自定义EXCEL文件
- java 实现 excel sheet 拷贝到另一个Excel文件中 poi
- Jxl导出Excel(跨行、设置列宽、设置行高、自动对齐、自定义背景等)
- Excel文件无法导入,错误: 它已经被别的用户以独占方式打开,或没有查看数据的权限。
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- Jxl导出Excel(跨行、设置列宽、设置行高、自动对齐、自定义背景等)
- C#如何利用NPOI生成具有精确列宽行高的Excel文件