C#学习之用Microsoft.office.interop.excel.dll导出excel
2014-03-18 21:50
459 查看
在导出excel前,需要做好的准备工作就是添加引用,添加Microsoft.office.interof.excel动态库,然后才能进行接下来的操作。
在这里,我们从最简单的导出操作开始,首先需要认识的是excel动态库中的Application类,自认为这个类主要指的就是excel应用本身,使用excel动态库导出excel时,每次都会伴随着Application类的创建,基于这样的操作,才能进行创建excel文件或者打开excel文件。其次就是要了解Workbook类,这个指的就是excel文件,而Worksheet则是excel中的一个sheet页,Worksheet.Cells[i,j]指的是在一个sheet中单元格的位置。大概的结构就是这样。
所有的excel操作都需要使用excel application,创建一个新的Application实例,最后释放它,Application xlsApp = new Application();
存储excel 的操作是:
workbook.saved=true;
workbook.SaveCopyAs(filepath);
一下是一个简单的导出Excel的方法。
以上的代码是不带有样式的导出excel,如果对excel存在样式的要求,例如字体的颜色,样式,大小或者单元格的底色等,则需要类似与如下操作。
第二行是设置文本内容。第三行是获取单元格区域,MergeCells是决定是否将单元格区域合并,Interior.color是单元格背景色,Borders.Color是单元格边框的颜色,Font.Color
是字体的颜色。
下面的连接是一个导出excel的demo,可以借鉴一下。
http://download.csdn.net/detail/slamzwl/7051117
在这里,我们从最简单的导出操作开始,首先需要认识的是excel动态库中的Application类,自认为这个类主要指的就是excel应用本身,使用excel动态库导出excel时,每次都会伴随着Application类的创建,基于这样的操作,才能进行创建excel文件或者打开excel文件。其次就是要了解Workbook类,这个指的就是excel文件,而Worksheet则是excel中的一个sheet页,Worksheet.Cells[i,j]指的是在一个sheet中单元格的位置。大概的结构就是这样。
所有的excel操作都需要使用excel application,创建一个新的Application实例,最后释放它,Application xlsApp = new Application();
存储excel 的操作是:
workbook.saved=true;
workbook.SaveCopyAs(filepath);
一下是一个简单的导出Excel的方法。
#region properties private int locationX; private int locationY; public int LocationX { set { locationX = value; } get { return locationX; } } public int LocationY { set { locationX = value; } get { return locationY; } } #endregion #region Method public void ExportExcel(DataSet ds) { try { Microsoft.Office.Interop.Excel.Application appXls = new Microsoft.Office.Interop.Excel.Application(); if (appXls == null) return; Workbook workbook = appXls.Workbooks.Add(true); appXls.Visible = true; //显示excel appXls.DisplayAlerts = false; //don't show alert or warning Worksheet worksheet = workbook.Worksheets[1]; InsertData(ds, worksheet); workbook.Saved = true; workbook.SaveCopyAs("F:\\sample.xlsx"); workbook.Close(); if (appXls != null) { appXls.Quit(); } } catch (Exception e) { MessageBox.Show(e.Message); } } private void InsertData(DataSet ds, Worksheet worksheet) { locationX = 1; locationY = 1; Microsoft.Office.Interop.Excel.Range range; foreach (System.Data.DataTable dt in ds.Tables) { for (int i = 0; i < dt.Columns.Count; i++) { worksheet.Cells[locationY+1, i + 1] = dt.Columns[i].ColumnName; range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[locationY+1,locationY + i + 1]; range.Interior.ColorIndex = 15; range.Font.Bold = true; } locationY++; for (int r = 0; r < dt.Rows.Count; r++) { for (int i = 0; i < dt.Columns.Count; i++) { worksheet.Cells[locationY+r + 1, i + 1] = dt.Rows[r][i].ToString(); } } locationY = locationY + dt.Rows.Count+1; } } #endregion Method
以上的代码是不带有样式的导出excel,如果对excel存在样式的要求,例如字体的颜色,样式,大小或者单元格的底色等,则需要类似与如下操作。
private Microsoft.Office.Interop.Excel.Range workSheet_range = null; worksheet.Cells[int Row, int Col] = Text; workSheet_range = worksheet.get_Range(string StartCell, string EndCell); workSheet_range.MergeCells = be.IsMerge; workSheet_range.Interior.Color = GetColorValue(ColorValue); workSheet_range.Borders.Color = System.Drawing.Color.Black.ToArgb(); workSheet_range.ColumnWidth = int width; workSheet_range.Font.Color = string.IsNullOrEmpty(FontColor.Value) ? System.Drawing.Color.White.ToArgb() : System.Drawing.Color.Black.ToArgb();
第二行是设置文本内容。第三行是获取单元格区域,MergeCells是决定是否将单元格区域合并,Interior.color是单元格背景色,Borders.Color是单元格边框的颜色,Font.Color
是字体的颜色。
下面的连接是一个导出excel的demo,可以借鉴一下。
http://download.csdn.net/detail/slamzwl/7051117
相关文章推荐
- SQL Server2008导出数据之Excel详细解析
- DataReader、DataSet、DataAdapter和DataView使用介绍
- 详细说明asp.net中datareader 和 dataset 的区别
- 将excel数据转换成dataset示例
- ASP.NET中DataTable与DataSet之间的转换示例
- DataSet 添加数据集、行、列、主键和外键等操作示例
- ASP.NET导出Excel打开时提示:与文件扩展名指定文件不一致解决方法
- Coolite优化导出Excel文件实现代码
- php导出excel格式数据问题
- DataSet、DataTable、DataRow区别详解
- ASP.NET 绑定DataSet中的多个表
- asp.net生成Excel并导出下载五种实现方法
- ADO.NET与抽水的故事 系列五——水库管理——DataSet
- DataSet和SqlDataReader性能测试
- Ilist转换成Dataset
- POI 导出EXCEL
- 使用poi导出excel
- GridView导Excel
- 从ASP过渡到ASP.net遗留的二十大积习
- c#接简单数据库操作类