读取和导出下载 excel 2003,2007 资料
protected void Page_Load(object sender, EventArgs e)
{
//直接在bin add referece search Microsoft.Office.Interop.Excel.dll (.net 4.5 version 好像是是 1.4.0.0.0)
string filePath = Request.MapPath(@"~\excel\someData.xlsx"); //excel文件路径(server path)
string sheetName = "Sheet1"; //文件中,哪一个sheet
string connectionString07 = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES'", filePath);
//string connectionString03 = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0", filePath);
string query = String.Format("select * from [{0}$]", sheetName);
OleDbConnection connection = new OleDbConnection(connectionString07);
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connectionString07);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable table = dataSet.Tables[];
}
注意 : 如果读取后要insert to SQL, 要注意格式和字的长度,把最长的放最上面,微软默认会依据前面8 rows来决定类型和长度等等。(如果遇到问题可以参考)
导出 excel 让游览器下载 (not ajax)
首先使用这个插件 http://epplus.codeplex.com/documentation (nuget可以下载)
更多功能介绍 : http://www.codeproject.com/Articles/680421/Create-Read-Edit-Advance-Excel-Report-in
refer : https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt1
然后 code :
using OfficeOpenXml;
public class Person
{
public string name { get; set; }
public int age { get; set; }
public bool isOK { get; set; }
public DateTimeOffset dt { get; set; }
public double dou { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
List<Person> persons = new List<Person> {
new Person { name = "keatkeat", age = ,isOK = false,dt = DateTimeOffset.Now,dou = 50.66 },
new Person { name = "xinyao", age = ,isOK = true,dt = DateTimeOffset.Now,dou = 50.00 } }; using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells["A1"].LoadFromCollection<Person>(persons, true); //load data from collection
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=file.xlsx"); //file name
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(pck.GetAsByteArray());
Response.End();
}
}
catch (Exception ex)
{
throw;
}
}
建议是开一个独立的 web form page 来处理,前端可以简单的用 window popup 来做下载 ^^
一些常用的 Excel 操作 :
merge & center
var cells = ws.Cells[, , , ]; //FromRow, FromColumn, ToRow, ToColumn , 是从1开始的不是0哦
cells = ws.Cells["A1,A2"]; //"A1,A2" 我们叫 address
cells.Merge = true;
cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
Read data from excel
System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath(@"~\test.xlsx"));
using (ExcelPackage excel = new ExcelPackage(file))
{
ExcelWorksheet worksheet = excel.Workbook.Worksheets.First(s => s.Name == "table1");
//table size
//算法 : 假设你在 B2 写一个值,那么 row 是 2, column 是 2
var rowCount = worksheet.Dimension.End.Row;
var columnCount = worksheet.Dimension.End.Column; //first row is columns
var x = worksheet.Cells["A1,A2"]; //"A1,A2" 我们叫 address foreach (var firstRowCell in worksheet.Cells[, , , columnCount])
{
string value = firstRowCell.Text;
} //second row is data
for (var rowNumber = ; rowNumber <= worksheet.Dimension.End.Row; rowNumber++)
{
var row = worksheet.Cells[rowNumber, , rowNumber, worksheet.Dimension.End.Column];
foreach (var cell in row)
{
bool isDate = cell.Value is DateTime; //check 类型
string format = cell.Style.Numberformat.Format; //check format
string value = cell.Text;
}
}
}
读取和导出下载 excel 2003,2007 资料的更多相关文章
- Java Struts2读取Excel 2003/2007/2010例子
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版. Apache POI ...
- 在线读取Mongodb数据库下载EXCEL文件
版本:Mongodb2.4.8 通过页面下载Excel文件 jsp <%@ page language="java" contentType="text/html; ...
- java导入导出下载Excel,xls文件(带下拉框)
/** * 导入excel文件 * 2014-7-23 * @return */ @RequiresPermissions("plug:product:caiwu:upload") ...
- NOPI读取模板导出(Excel中追加数据)
在Controller里,我们定义一个FileResult的Action,返回值是一个文件形式被浏览器下载下来. [HttpGet] public FileResult ExportProductLi ...
- 简单导出下载excel的方法
简单导出excel方法 /// <summary> /// Excel打包下载 /// </summary> /// <returns></returns&g ...
- SQL Server带列名导出到Excel(Export to CSV with headers)的几个思路
https://www.cnblogs.com/downmoon/archive/2012/05/04/2482995.html SQL Server 2008中SQL应用系列及BI学习笔记系列- ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET
public class OutExcel { public static void OutExcel_bb(DataTable dt, string thepath, string temppath ...
- java POI 解析excel 2003和2007 直接转为List<Map> 返回
1.POI 官网下载jar包,3.5以上 2.项目导入jar包 3.参数:String数组--对应的excel列名对应的KEY,File excel文件,sheetNumber ---excel的s ...
随机推荐
- code testing
#include<iostream> #include<climits> int main(){ using namespace std; int n_int = INT_MA ...
- unity3D基础学习 通过判断鼠标点击的是否是目标物体,物体旋转,滑动滚轮缩放拉近视角
贴代码: 摄像机的拉近视角代码: public Transform target; public float minFov = 15f; public float maxFov = 7 ...
- android 仿EF看视频弹出练习功能
第一次看到英孚iPad上的视频练习,感觉好有创意,让我们学习英语起来更加的有激情.而且不仅仅是在EF上有.相信在其它的学校肯定也会有的. 以上也我尝试把它写出来的原因了. 以下让我们来看看它的效果是怎 ...
- ubuntu下libjson-c库的使用问题备忘
首先安装libjson的c库 #apt-get install libjson0-dev libjson0 安装好后查看/usr/include/json下是否有头文件,有就对了! gcc -o ...
- VB中的Dictionary对象
VB中的Dictionary对象 Dictionary对象不是VBA或Visual Basic实时语言的具体存在的部分,它是存在于Microsoft Scripting Runtime Library ...
- CSS3中的transform变形
在CSS3中,用Transform功能可以实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形,这四种变形分别使用rotate.scale.skew和translate这四种方法来实现.将这四种变形 ...
- ManagedPipelineHandler IIS
IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandl ...
- 用MS自带的VS构建joint语句
在其中一个表上,右键,选择"New Query",弹出"Add Table"对话框,将待joint的两个表Add,并选择相应字段,则会自动构建joint语句,其 ...
- c 单链表反转(不添加新结点空间)
最近复习考研,加上一直都将"算法"放在很高的位置,所以,蛮重视算法的.不多说了,其实这个问题,不难理解的. 主要代码: //反转单链表. void reverse(linklist ...
- 通过安全策略限制局域网部分IP访问我的电脑
一旦电脑连上局域网,那么别人就容易进入自己的电脑,造成隐私被泄漏,这是我们最不愿发生的情况.因此,如果你的电脑并不需要向局域网其他用户共享资料,那么就建议采用策略,禁止局域网电脑访问自己的电脑,以保证 ...