使用EPPLUS操作EXcel
使用EPPLUS操作EXcel
1 下载Epplus最新版: http://epplus.codeplex.com/
2 在项目中添加引用 EEPULS.dll(测试环境Win7+V2010旗舰)
3 添加using引用
using OfficeOpenXml;
using OfficeOpenXml.Drawing;
using OfficeOpenXml.Drawing.Chart;
using OfficeOpenXml.Style;
4 read Excel文件
private void button2_Click(object sender, EventArgs e) { string pfilePath = ""; OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "*.xls|*.xlsx"; if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { pfilePath = ofd.FileName; } if (string.IsNullOrEmpty(pfilePath)) { MessageBox.Show("没有选中文件"); return; } FileInfo existingFile = new FileInfo(pfilePath); try { ExcelPackage package = new ExcelPackage(existingFile); int vSheetCount = package.Workbook.Worksheets.Count; //获取总Sheet页 ExcelWorksheet worksheet = package.Workbook.Worksheets[1];//选定 指定页 int maxColumnNum = worksheet.Dimension.End.Column;//最大列 int minColumnNum = worksheet.Dimension.Start.Column;//最小列 int maxRowNum = worksheet.Dimension.End.Row;//最小行 int minRowNum = worksheet.Dimension.Start.Row;//最大行 DataTable vTable = new DataTable(); DataColumn vC; for (int j = 1; j <= maxColumnNum; j++) { vC = new DataColumn("A_" + j, typeof(string)); vTable.Columns.Add(vC); } if (maxRowNum > 200) { maxRowNum = 200; } for (int n = 1; n <= maxRowNum; n++) { DataRow vRow = vTable.NewRow(); for (int m = 1; m <= maxColumnNum; m++) { vRow[m - 1] = worksheet.Cells[n, m].Value; } vTable.Rows.Add(vRow); } this.dataGridView1.DataSource = vTable; } catch (Exception vErr) { MessageBox.Show(vErr.Message); } }
5 write Excel文件
private void button1_Click(object sender, EventArgs e) { OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.ExcelPackage(); OfficeOpenXml.ExcelWorkbook wb = ep.Workbook; OfficeOpenXml.ExcelWorksheet ws = wb.Worksheets.Add("我的工作表"); //配置文件属性 wb.Properties.Category = "类别"; wb.Properties.Author = "作者"; wb.Properties.Comments = "备注"; wb.Properties.Company = "公司"; wb.Properties.Keywords = "关键字"; wb.Properties.Manager = "管理者"; wb.Properties.Status = "内容状态"; wb.Properties.Subject = "主题"; wb.Properties.Title = "标题"; wb.Properties.LastModifiedBy = "最后一次保存者"; //写数据 ws.Cells[1, 1].Value = "Hello"; ws.Column(1).Width=40;//修改列宽 ws.Cells["B1"].Value = "World"; ws.Cells[3, 3, 3, 5].Merge = true; ws.Cells[3, 3].Value = "Cells[3, 3, 3, 5]合并"; ws.Cells["A4:D5"].Merge = true; ws.Cells["A4"].Value = "Cells[\"A4:D5\"]合并"; SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "*.xls|*.xlsx"; if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { FileInfo file = new FileInfo(sfd.FileName); ep.File = file; ep.Save(); MessageBox.Show("保存成功"); } else { MessageBox.Show("取消保存"); } }
上述代码大部分来源网络,只进行过小改动,下面是原文和资料地址:
http://blog.csdn.net/jimmy2248/article/details/8363697
http://blog.csdn.net/zhoufoxcn/article/details/14112473
http://www.cnblogs.com/liudeyun/p/3535740.html
http://blog.163.com/china__xuhua/blog/static/19972316920136335721285/
使用EPPLUS操作EXcel的更多相关文章
- C#使用第三方组件Epplus操作Excel表
Epplus操作Excel基础详解 1.什么是Epplus Epplus是一个使用Open Office XML文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要 ...
- ASP.NET Core使用EPPlus操作Excel
1.前言 本篇文章通过ASP.NET Core的EPPlus包去操作Excel(导入导出),其使用原理与NPOI类似,导出Excel的时候不需要电脑上安装office,非常好用 2.使用 新建一个AS ...
- 使用LinqToExcel和EPPlus操作excel
1.使用LinqToExcel LinqToExcel是一个.net framework平台下开源项目,它主要实现了LINQ的语法查询Excel电子表格.类型之前的LINQToXXX如果你是LINQ语 ...
- c#用EPPLUS操作excel
参考: http://www.cnblogs.com/rumeng/p/3785748.html http://www.cnblogs.com/libla/p/5824296.html#3818995 ...
- [Solution] NPOI操作Excel
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- .net 操作excel
.net 操作excel的常用组件:EPPlus,NPOI 1.NPOI,即POI的.NET版本(POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office文件, ...
- 【代码沉淀】 - EPPlus - 操作xlsx表格文件
EPPlus - Create advanced Excel spreadsheets on the server.web: http://epplus.codeplex.com/nuget: Ins ...
- C# 操作 Excel(.xls和.xlsx)文件
C#创建Excel(.xls和.xlsx)文件的三种方法 .NET 使用NPOI导入导出标准Excel C# 使用NPOI 实现Excel的简单导入导出 NET使用NPOI组件将数据导出Excel-通 ...
- [Asp.net] C# 操作Excel的几种方式 优缺点比较
在项目中我们常常需要将数据库中的数据导出成Excel文件 有一次工作中我的目的就是读取Excel到内存中,整理成指定格式 整理后再导出到Excel. 因为我要处理的每个Excel表格文件很大.一个表格 ...
随机推荐
- 四、java中的数组
总结: 数组的特点: 1.存储的数据类型单一. 2.数组的大小不可变. 3.Arrays工具类.
- .Net母版页
母版页:MasterPage 母版页不是独立的,它是与用户控件一起来使页面结构更加优化. 从粗到细,逐步细化各级页面的模板结构.到页面中只需完善其不同之处即可,相同之处都放在各级母版页中实现了. We ...
- 一个js搜索功能的实现
这次的重点就在于一个兼容性的问题.就是innerText(微软ie)和textContent(火狐)的知识点,兼容性永远都是伤啊 <!DOCTYPE html PUBLIC "-//W ...
- ORACLE分页SQL语句
.根据ROWID来分 select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select r ...
- Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
Change the font size and weight of text items and push buttons on mouse hover in Oracle Forms. An ...
- 用@RequestMapping映射请求
DispatcherServlet接受一个web请求之后,将请求发送给@Controller注解声明的不同控制器类. 这个调度过程依赖控制器类及其处理程序方法中声明的各种@RequestMapping ...
- SpringMVC 使用Form标签库制作登录表单
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- iOS : 静态库(.framework)合并
如果写了一个Framework,根据Build时选择的机器类型,会分为模拟器Framework和真机Framework,两者是不能混用的. 此时可以通过配置一个Run Script,在Script中使 ...
- retire or not retire ? is a question.
corejava 上的一段代码 因吹思婷 "C:\Program Files\Java\jdk1.8.0_101\bin\java" -Didea.launcher.port=75 ...
- Class create, device create, device create file (转)
来自:http://www.hovercool.com/en/Class_create,_device_create,_device_create_file 开始写Linux设备驱动程序的时候,很多时 ...