服务器读取EXCEL不安装OFFICE如何实现
2014-03-19 15:28
471 查看
用asp.net做了一简单的游戏管理后台,涉及到了上传Excel导入数据的功能,在本地开发实现都好好的,可已上传的服务器上就悲剧了,下面有个不错的解决方法,大家可以参考下
前段时间用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;
}
}
推荐链接:
unity3d http://www.unitymanual.com
unity3d资讯 http://www.unitymanual.com/forum-news-1.html
unity3d教程分享 http://www.unitymanual.com/forum36.html
Cocos2D技术专区 http://www.unitymanual.com/forum103.html
unity3d 游戏产品 http://www.unitymanual.com/forum76.html
unity3d 人才招聘 http://www.unitymanual.com/forum-job-1.html
蛮牛游戏测评 http://www.unitymanual.com/forum-virtualreality-1.html
unity3d 论坛 http://www.unitymanual.com/forum.php
前段时间用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;
}
}
推荐链接:
unity3d http://www.unitymanual.com
unity3d资讯 http://www.unitymanual.com/forum-news-1.html
unity3d教程分享 http://www.unitymanual.com/forum36.html
Cocos2D技术专区 http://www.unitymanual.com/forum103.html
unity3d 游戏产品 http://www.unitymanual.com/forum76.html
unity3d 人才招聘 http://www.unitymanual.com/forum-job-1.html
蛮牛游戏测评 http://www.unitymanual.com/forum-virtualreality-1.html
unity3d 论坛 http://www.unitymanual.com/forum.php
相关文章推荐
- 服务器读取EXCEL不安装OFFICE如何实现
- 服务器读取EXCEL不安装OFFICE如何实现
- 不安装OFFICE实现服务器读取EXCEL(ASP.NET)
- VB.NET导出Excel 轻松实现Excel的服务器与客户端交换 服务器不安装Office
- 用org.in2bits.MyXls快速生成excel(即使服务器未安装office也能生成excel)
- 在没安装OFFICE的服务器SSIS中进行EXCEL的ETL操作!
- Office EXCEL 如何实现在单元格内换行
- poi实现excel读取,实现增加超链接,对于office 2007完美支持
- 如何用C#提取Word、Excel等文件的文本(无需安装Office)
- Aspose.Cells生成Excel 服务器不用安装office
- 如何在WINDOWS XP下安装IIS服务器以及实现ASP网页访问
- 读取excel, 让用户选出的几个列,将数据导入到sql server,如何实现!
- 如何生成/读取带有密码的Office Excel 2003(Biff8格式)(非破解)
- Office EXCEL 如何实现在单元格内换行
- 阿里云服务器安装mysql,如何实现远程连接
- 如何使用JavaScript实现纯前端读取和导出excel文件
- 服务器不安装Excel,实现导出Excel功能
- 系统不安装Office导出Excel的实现方法
- 如何安装 Microsoft Office 兼容包,以便能够使用早期版本的 Excel、PowerPoint 和 Word 来打开和保存来自 2007 Office 程序的文件
- go 实现从服务器导出excel 到浏览器