服务器读取EXCEL不安装OFFICE如何实现

前段时间用asp.net做了一简单的游戏管理后台,其中涉及到了上传Excel导入数据的功能,本来在本地开发实现都好好的,可已上传的服务器上就悲剧了。服务器是阿里云 Windows Server 2008 R2(X64),排查后发现服务器没装office这玩意,也就不会有OLEDB驱动程序,实在不想装office,特别是office 2010,看着庞大的体积就头疼,怎办?

百度谷歌一番发现,其实只要安装Microsoft Access 2010 数据库引擎可再发行程序包即可实现2010 Microsoft Office System 文件与非 Microsoft Office 应用程序之间传输数据,支持现有的 Microsoft Office 文件(例如 Microsoft Office Access 2010(*.mdb 和 *.accdb)文件和 Microsoft Office Excel 2010(*.xls、*.xlsx 和 *.xlsb)文件)与其他数据源(例如 Microsoft SQL Server)之间传输数据。还支持与现有文本文件建立连接。 此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。该安装包下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 。

装上这个包后,一段代码就搞定:


代码如下:

/// <summary>
/// 连接Excel 读取Excel数据 并返回DataSet数据集合
/// </summary>
/// <param name="filepath">Excel服务器路径</param>
/// <param name="tableName">Excel表名称</param>
/// <returns></returns>
public static System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)
{
//string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
string strCon = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
OleDbConnection ExcelConn = new OleDbConnection(strCon);
try
{
string strCom = string.Format("SELECT * FROM [Sheet1$]");
ExcelConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + tableName + "$]");
ExcelConn.Close();
return ds;
}
catch
{
ExcelConn.Close();
return null;
}
}

时间: 2014-03-15

C#读取Excel的三种方式以及比较分析

(1)OleDB方式 优点:将Excel直接当做数据源处理,通过SQL直接读取内容,读取速度较快. 缺点:读取数据方式不够灵活,无法直接读取某一个单元格,只有将整个Sheet页读取出来后(结果为Datatable)再在Datatable中根据行列数来获取指定的值. 当Excel数据量很大时.会非常占用内存,当内存不够时会抛出内存溢出的异常. 读取代码如下: public DataTable GetExcelTableByOleDB(string strExcelPath, string tabl

asp.net读取excel文件的三种方法示例

方法一:采用OleDB读取Excel文件 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: 复制代码 代码如下: public DataSet ExcelToDS(string Path)   {   string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;&

可以读取EXCEL文件的js代码第1/2页

首页给个有中文说明的例子,下面的例子很多大家可以多测试. 复制代码 代码如下: <script language="javascript" type="text/javascript"><!-- function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try{ excelApp = new ActiveXObject("Excel.Applicatio

.NET读取Excel文件的三种方法的区别

ASP.NET读取Excel文件方法一:采用OleDB读取Excel文件: 把Excel文件当做一个数据源来进行数据的读取操作,实例如下: 复制代码 代码如下: public DataSet ExcelToDS(string Path)   {    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Prop

Drupal读取Excel并导入数据库实例

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等. 一.Drupal 通过Library 调用 PHPExcel将PHPExcel 下载后,上传到Drupal目录:si

PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)

今天接到了一个从Excel内读取图片的需求,在网上查找了一些资料,基本实现了自己的需求,不过由于查到的一些代码比较久远,不能直接移植到自己的项目里,需要稍加改动一下. 这里介绍一下分别使用phpspreadsheet和PHPExcel扩展库来实现读取Excel内图片的功能: PHPSpreadsheet 首先安装phpspreadsheet,由于线上服务器PHP版本是PHP5.6,所以需要安装兼容PHP5.6的版本,这里安装1.8.2版本 composer require phpoffice/p

C#读取Excel到DataTable的方法示例

前提 在Windows下进行数据处理的时候最常见的情况莫过于读取Microsoft的Excel文件了,Excel的普及率惊人,是事实上的标准.以前的开发中我采用调用第三方类库 NPOI的方式来处理Excel.这个方式有两个缺点: 需要依赖第三方类库NPOI NPOI支持几乎全功能的Office条件,缺点就是复杂度也高. 如果只是简单的导入数据,完全可以有更加简单的方案,方案的限制条件为: 只支持Windows平台 只读取Excel文件 支持xls和xlsx文件格式 依赖 还是有依赖的 2007

关于Poi读取Excel引发内存溢出问题的解决方法

前言 最近生产环境有个老项目一直内存报警,不时的还出现内存泄漏,导致需要重启服务器,已经严重影响正常服务了. 分析 1.dump内存文件 liunx使用如下命令: ./jmap -dump:format=b,file=heap.hprof pid 2.使用Eclipse Memory Analysis进行分析 异常如下: at org.apache.poi.xssf.usermodel.XSSFRow.<init>(Lorg/openxmlformats/schemas/spreadsheet

python 读取excel文件生成sql文件实例详解

python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil