搜档网
当前位置:搜档网 › C 读取Excel类

C 读取Excel类

C  读取Excel类
C  读取Excel类

C++?áè?Excelàà.txt

VCí¨1yCOM×é?t??Excel ??DD?áD′

????μ??·£ohttps://www.sodocs.net/doc/263635333.html,/source/1850105

//****************************************************************

***************

// FILE NAME : cExcel.h

//

// DESCRIPTION : a class for control excel file

// compile with VC 6.0 //

// CREATE DATE : 2009-11-17

// AUTHOR : ?áμ?Andy

// QQ : 525908322

// https://www.sodocs.net/doc/263635333.html,/andy84/

//****************************************************************

***************

#ifndef __CEXCEL_H__

#define __CEXCEL_H__

#include "stdafx.h"

//import mso.dll

#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\mso.dll" \

rename("RGB", "MSRGB")

//import VBE6EXT.OLB

#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" raw_interfaces_only, \

rename("Reference", "ignorethis"),\

rename("VBE", "JOEVBE")

//import excel.exe

#import "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" exclude("IFont", "IPicture") \

rename("RGB", "ignorethis"),\

rename("DialogBox", "ignorethis"),\

rename("VBE", "JOEVBE"), \

rename("ReplaceText", "JOEReplaceText"),\

rename("CopyFile","JOECopyFile"), \

rename("FindText", "JOEFindText"),\

rename("NoPrompt", "JOENoPrompt")

using namespace Office;

using namespace VBIDE;

using namespace Excel ;

const COleVariant covTrue((short)TRUE);

const COleVariant covFalse((short)FALSE);

const COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

class cExcel

{

public:

cExcel();

~cExcel();

void StartApp(void);

void CreateWorkBook(void);

void OpenWorkBook(CString filename);

void SelectAcitveSheet(void);

void SetSheetName(CString sheetname);

void SelectRange( CString range );

void SelectRange( int x , int y );

void SetBackColor( long color );

void GetFont(void);

void SetFontName(CString fontname);

void SetFontSytle(CString fontsytle);

void SetFontSize(long size);

void PutValue(CString string);

void PutValue(int x , int y , CString string );

CString GetCString( int x , int y );

double GetValue(int x , int y );

void Save(CString filename);

void Save( CString path , CString filename );

void Quit(void);

private:

_ApplicationPtr pApp;

WorkbooksPtr pBooks ;

_WorkbookPtr pBook ;

SheetsPtr pSheets ;

_WorksheetPtr pSheet;

RangePtr pRange;

InteriorPtr pInterior;

FontPtr pFont;

};

#endif //CEXCEL_H

//****************************************************************

***************

// FILE NAME : cExcel.cpp

//

// DESCRIPTION : a class for control excel file

// compile with VC 6.0 //

// CREATE DATE : 2009-11-17

// AUTHOR : ?áμ?Andy

// QQ : 525908322

// https://www.sodocs.net/doc/263635333.html,/andy84/

//****************************************************************

***************

#include "stdafx.h"

#include "cExcel.h"

#include"Assert.h"

//****************************************************************

***************

// FUNCTION : cExcel

// DESCRIPTION : //

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

cExcel::cExcel()

{

pApp = NULL;

pBooks = NULL;

pBook = NULL;

pSheets = NULL;

pSheet = NULL;

pRange = NULL;

pInterior = NULL;

pFont = NULL;

//****************************************************************

***************

// FUNCTION : ~cExcel

// DESCRIPTION :

//

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

cExcel::~cExcel()

{

}

//****************************************************************

***************

// FUNCTION : StartApp

// DESCRIPTION : open excel.exe //

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::StartApp(void)

{

CoInitialize ( NULL );

pApp.CreateInstance(L"Excel.Application");

pApp->PutVisible(0,VARIANT_TRUE);//VARIANT_TRUE

pBooks = pApp->GetWorkbooks();

}

//****************************************************************

***************

// FUNCTION : CreateWorkBook

// DESCRIPTION : create *.xls file //

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::CreateWorkBook(void)

{

assert(pBooks != NULL );

pBook = pBooks->Add((long)xlWorkbook);

//****************************************************************

***************

// FUNCTION : OpenWorkBook

// DESCRIPTION : open *.xls file //

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::OpenWorkBook(CString filename )

{

assert(pBooks != NULL );

pBook = pBooks->Open( (LPCSTR)filename );

}

//****************************************************************

***************

// FUNCTION : SelectAcitveSheet

// DESCRIPTION :

//

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::SelectAcitveSheet(void)

{

assert(pBook != NULL );

pSheets = pBook->GetWorksheets();

pSheet = pBook->GetActiveSheet();

}

//****************************************************************

***************

// FUNCTION : SetSheetName

// DESCRIPTION :

//

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::SetSheetName(CString sheetname)

{

assert(pSheet != NULL );

pSheet->PutName( (LPCSTR)sheetname);

}

//****************************************************************

***************

// FUNCTION : SelectRange

// DESCRIPTION :

//

// PARAMETERS : CString range (eg. "A1")

// RETURN : void //****************************************************************

***************

void cExcel::SelectRange(CString range )

{

assert(pSheet != NULL );

pRange = pSheet->GetRange((LPCSTR) range ,vtMissing);

}

//****************************************************************

***************

// FUNCTION : SelectRange

// DESCRIPTION :

//

// PARAMETERS : int x , int y

// RETURN : void //****************************************************************

***************

void cExcel::SelectRange( int x , int y )

{

CString range ;

x = (0 == x ) ? 1 : x ;

y = (0 == y ) ? 1 : y ;

x = (x > 26)? (x%26) : ( x ) ;

range.Format("%c%d",y+'A'-1, x);

SelectRange( range );

}

//****************************************************************

***************

// FUNCTION : SetBackColor

// DESCRIPTION :

//

// PARAMETERS : long color

// RETURN : void //****************************************************************

***************

void cExcel::SetBackColor( long color )

{

assert(pRange != NULL );

pInterior = pRange->GetInterior();

pInterior->PutColor((long )color);

}

//****************************************************************

***************

// FUNCTION : GetFont

// DESCRIPTION :

//

// PARAMETERS : void

// RETURN : void //****************************************************************

***************

void cExcel::GetFont(void)

{

assert(pFont != NULL );

pFont =pRange->GetFont();

}

//****************************************************************

***************

// FUNCTION : SetFontName

// DESCRIPTION :

//

// PARAMETERS : CString fontname

// RETURN : void //****************************************************************

***************

void cExcel::SetFontName( CString fontname)

{

assert(pFont != NULL );

pFont->PutName((LPCSTR)fontname);//(L"á¥êé")

}

//****************************************************************

***************

// FUNCTION : SetFontSytle

// DESCRIPTION :

//

// PARAMETERS : CString fontsytle

// RETURN : void //****************************************************************

***************

void cExcel::SetFontSytle( CString fontsytle )

{

assert(pFont != NULL );

pFont->PutFontStyle((LPCSTR)fontsytle);//(L"Bold Italic")

}

//****************************************************************

***************

// FUNCTION : SetFontSize

// DESCRIPTION :

//

// PARAMETERS : long size

// RETURN : void //****************************************************************

***************

void cExcel::SetFontSize( long size )

{

assert(pFont != NULL );

pFont->PutSize((long)size);

}

//****************************************************************

***************

// FUNCTION : PutValue

// DESCRIPTION :

//

// PARAMETERS : CString string

// RETURN : void //****************************************************************

***************

void cExcel::PutValue( CString string )

{

assert(pRange != NULL );

pRange->PutValue2((LPCSTR)string );

}

//****************************************************************

***************

// FUNCTION : PutValue

// DESCRIPTION :

//

// PARAMETERS : int x , int y , CString string

// RETURN : void

//****************************************************************

***************

void cExcel::PutValue( int x , int y , CString string )

{

SelectRange(x, y);

PutValue( string );

}

//****************************************************************

***************

// FUNCTION : PutValue

// DESCRIPTION : read sting //

// PARAMETERS : int x , int y

// RETURN : CString

//****************************************************************

***************

CString cExcel::GetCString( int x , int y )

{

CString result;

COleVariant vResult;

SYSTEMTIME st ;

CString stry ,strm ,strd ;

SelectRange(x, y);

////////////////////////

assert(pRange != NULL );

///////////////////////

vResult = pRange->GetValue2();

switch ( vResult.vt )

{

case VT_BSTR: //OLE Automation string

{

result = vResult.bstrVal;

break;

}

case VT_R8 : // 8 byte real

{

result.Format("%f",vResult.dblVal);

break;

}

case VT_DATE: //date

{

VariantTimeToSystemTime(vResult.date, &st);

stry.Format("%d",st.wYear);

strm.Format("%d",st.wMonth);

strd.Format("%d",st.wDay);

result = stry+"-"+strm+"-"+strd;

break ;

}

case VT_EMPTY: //empty

{

result.Empty();

break ;

}

default:

{

AfxMessageBox("not string ");

result.Empty();

break;

}

}

return result;

}

//****************************************************************

***************

// FUNCTION : GetValue

// DESCRIPTION :

//

// PARAMETERS : int x , int y

// RETURN : double //****************************************************************

***************

double cExcel::GetValue(int x , int y )

{

double result ;

COleVariant vResult;

SelectRange(x, y);

vResult = pRange->GetValue2();

if(VT_R8 == vResult.vt)

{

result = vResult.dblVal ;

}

else

{

AfxMessageBox(" not VT_R8 ");

}

return result ;

}

//****************************************************************

***************

// FUNCTION : Save

// DESCRIPTION :

//

// PARAMETERS : CString filename

// RETURN : void //****************************************************************

***************

void cExcel::Save(CString filename)

{

TCHAR szFilePath[MAX_PATH + 1];

CString str_url ;

GetModuleFileName(NULL, szFilePath, MAX_PATH);

(_tcsrchr(szFilePath, _T('\\')))[1] = 0;

str_url = szFilePath;

str_url += filename ;

////////////////////////

assert(pBook != NULL );

///////////////////////

pBook->SaveAs( (LPCSTR) str_url ,(long)xlNormal ,(LPCSTR)"", (LPCSTR)"" ,(long)FALSE,(long)FALSE ,xlShared );

}

//****************************************************************

***************

// FUNCTION : Save

// DESCRIPTION :

//

// PARAMETERS : CString path , CString filename

// RETURN : void

//****************************************************************

***************

void cExcel::Save( CString path , CString filename )

{

assert(pBook != NULL );

path += filename ;

pBook->SaveAs( (LPCSTR) path ,(long)xlNormal ,(LPCSTR)"", (LPCSTR)"" ,(long)FALSE,(long)FALSE ,xlShared );

}

//****************************************************************

***************

// FUNCTION : Quit

// DESCRIPTION : close excel.exe //

// PARAMETERS : void

// RETURN : void

//****************************************************************

***************

void cExcel::Quit(void)

{

assert(pBook != NULL );

assert(pBooks != NULL );

assert(pApp != NULL );

pBook->PutSaved(0,VARIANT_TRUE);//don't answer to save

pBooks->Close();

pApp->Quit();

CoUninitialize ();

}

±???à′×?CSDN2??í£?×a????±ê?÷3?′|£ohttps://www.sodocs.net/doc/263635333.html,/MudiAndy/ar

chive/2009/11/26/4881740.aspx

演讲稿

尊敬的老师们,同学们下午好:

我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。

转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。

学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。

总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对

自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。

在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!

c读取excel几种方法的体会

c读取excel几种方法的体会(2) (2):Com组件的方式读取Excel 这种方式需要先引用Microsoft.Office.Interop.Excel 。首选说下这种方式的优缺点 优点:可以非常灵活的读取Excel中的数据 缺点:如果是Web站点部署在IIS上时,还需要服务器机子已安装了Excel,有时候还需要为配置IIS权限。最重要的一点因为是基于单元格方式读取的,所以数据很慢(曾做过试验,直接读取千行、200多列的文件,直接读取耗时15分钟。即使采用多线程分段读取来提高CPU的利用率也需要8分钟。PS:CPU I3) 需要读取大文件的的童鞋们慎重。。。 附上单线程和多线程读取类: public class ExcelOptions { private Stopwatch wath = new Stopwatch(); /// <summary> /// 使用COM读取Excel /// </summary>

/// <param name=”excelFilePath”>路径 </param> /// <returns>DataTabel</returns> public System.Data.DataTable GetExcelData(string excelFilePath) { Excel.Application app = new Excel.Application(); Excel.Sheets sheets; Excel.Workbook workbook = null; object oMissiong = System.Reflection.Missing.Value; System.Data.DataTable dt = new System.Data.DataTable(); wath.Start(); try { if (app == null) { return null;

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法 最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。 读取excel文件的常用开源免费方法有以下几种: JDBC-ODBC Excel Driver jxl.jar jcom.jar poi.jar 下面分别对这几种方法分别进行探讨 1、JDBC-ODBC Excel Driver 这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可 查询excel表格。优点是:不需要第三方的jar包。 如下表样 首先在控制面板进行数据源ODBC登记 具体方法如下:

下面就是代码了。 package xuzhe;

import java.io.*; import java.sql.*; //java xuzhe.ExcelJDBC public class ExcelJDBC { public static void main(String[] args) throws SQLException{ Connection con = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" ); Statement st = con.createStatement(); ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" ); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); System.out.println ("表格列数"+numberOfColumns ); System.out.println( rsmd.getColumnName(1)+ "," + rsmd.getColumnName(2) + "," + rsmd.getColumnName(3)); while (rs.next()) { for (int i = 1; i <= numberOfColumns; i++) { if (i > 1) System.out.print(", "); String columnValue = rs.getString(i); System.out.print(columnValue); } System.out.println(""); } rs.close(); st.close(); } catch(Exception ex) { System.err.print("Exception: "); System.err.println(ex.getMessage()); } finally { con.close(); } } } 执行结果如下:

(整理)C导入Excel数据的方式两种.

C#导入Excel数据的方式(两种) 方式一、导入数据到数据集对象,只支持Excel的标准格式,即不能合并单元格等等 ///

/// 导入数据到数据集中 /// 备注:此种方法只支持excel原文件 /// /// 文件路劲 /// 异常信息 /// public static System.Data.DataTable InputExcel(string Path, ref string exceptionMsg) { System.Data.DataTable dt = null; try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); System.Data.DataTable sheetDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string[] sheet = new string[sheetDt.Rows.Count]; for (int i = 0; i < sheetDt.Rows.Count; i++) { sheet[i] = sheetDt.Rows[i]["TABLE_NAME"].ToString(); }

c_实现excel数据高效导入到sql数据库

c#实现excel数据高效导入到sql数据库 本文来自: IT知道网(https://www.sodocs.net/doc/263635333.html,) 详细出处参考: https://www.sodocs.net/doc/263635333.html,/html/net/c/20081210/3092.html 本文实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是 System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10 秒左右,而真正的导入过程只需要4.5秒。 using System; using System.Data; using System.Windows.Forms; using System.Data.OleDb; namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //测试,将excel中的sheet1导入到sqlserver中 string connString = "server=localhost;uid=sa;pwd=sqlgis;database=master"; System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog(); if (fd.ShowDialog() == DialogResult.OK) { TransferData(fd.FileName, "sheet1", connString); } } public void TransferData(string excelFile, string sheetName, string connectionString) { DataSet ds = new DataSet(); try { //获取全部数据 string strConn = "Provider=Microsoft.Ace.12.0.OLEDB.12.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 12.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open();

C# 读取ExCEL表格的内容

C# winform 开发之Excel操作(二)------读取Excel表格 2011-07-14 17:28 读取Excel方法有多种,这里我主要讲两种方式。 方法一:sql语句读取Excel 这种方法,对于连接过数据库的人来说,一定不陌生。 原理大致为:通过select语句读取Excel表的内容,存放在dataset中。这样,我们就可以很方便操作Excel表格。 大致分为以下几步: 记得先添加命名空间: using System.Data.OleDb; //Excel表数据操作 1.创建连接,引用协议 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; //其中参数”filePath“,是安放Excel的位置。例如:E:/1.xls。 OleDbConnection OleConn = new OleDbConnection(strConn); 2.打开连接,并执行sql语句,别忘了末尾关闭连接 OleConn.Open(); String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,sheet3等等 //这是要执行的sql语句,你应该不陌生吧! OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn); DataSet OleDsExcle = new DataSet(); OleDaExcel.Fill(OleDsExcle, "Sheet1"); OleConn.Close(); 如果,还不清楚,不怕。下面,我们通过实例来加深理解。 源代码: public static DataTable ReadExcel(string filePath)

VS2008环境使用MFC操作读取excel文件

1. 建立MFC工程,MDI(基于对话框),其他默认即可。 2. 操作Excel文件初始化: a. project->add class->MFC class from typelib (项目->添加类->Typelib中的MFC类)导 入Excel.exe,一般都在C:/Program Files/Microsoft Office/Office12路径下(即选择你的office 安装路径下的excel.exe加入) b. 选中以下几项_Application,_WorkSheet,_WorkBook,WorkSheets,WorkBooks,Range,然 后导入; c. 导入后自动在工程中添加 CApplication,CWorkSheet,CWorkBook,CWorkSheets,CWorkBooks,CRange 这些类; 然后需要把这些类的头文件中的第一句话#import ".......EXCEL.EXE" nonamespace 删除; 引入之后如果编译遇到错误,Not enough actual parameters for macro 'DialogBoxW'. 让人头疼! 解决方法是在CRange类中, [cpp]view plainc opy 1.VARIANT DialogBox() 2.{

3. VARIANT result; 4. InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL); 5.return result; 6.} DialogBox()前面添加下划线变成_DialogBox(),解决了! 3.操作excel文件 在“资源”里面选择MFC自动建立的对话框,双击“打开”按钮(若没有就自己做一个),然后程序会将你到对这个按钮的函数里,在函数中写如下内容:(文件是CxxxDlg.cpp xxx 是你的项目名称) [cpp]view plainc opy 1.void Cexcel打开3Dlg::OnBnClickedOk() 2.{ 3.// TODO: 在此添加控件通知处理程序代码 4. CApplication app; 5. CWorkbooks books; 6. CWorkbook book; 7. CWorksheets sheets; 8. CWorksheet sheet; 9. CRange range; 10. CRange iCell; 11. LPDISPATCH lpDisp; 12. COleVariant vResult; 13. COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); 14.if(!app.CreateDispatch(L"Excel.Application")) 15. { 16. AfxMessageBox(L"无法启动Excel服务器!"); 17.return; 18. } 19. books.AttachDispatch(app.get_Workbooks());

在C#读写Excel

在C#读写Excel 1:工程对excel类库的导入,如:c:\program files\Microsoft office\offiece11\excel.exe 2:命名控件的引入: using Microsoft.office.Interop.Excel; 3:如果是对一个已经存在的excel文件进行操作则: Application app=new Application(); Workbook wbook=app.Workbooks.Open("c:\\temp.xls",Type.Missing,Type.missing,Type.missing,Type.missin g,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Type.missing,Ty pe.missing,Type.missing,Type.missing); Worksheet worksheet=(Worksheet)wbook.Worksheets[1]; 4:如果是新建一个excel文件: Application app=new Application(); Workbook wbook=app.Workbook.Add(Type.missing); Worksheet worksheet=(Worksheet)wbook.Worksheets[1]; 5:设置某个单元格里的内容: worksheet.Cells[1,2]="列内容" 6读取某个单元格里的内容 string temp=((Range)worksheet.Cells[1,2]).Text; 7设置某个单元格里的格式 Excel.Range rtemp=worksheet.get_Range("A1","A1"); https://www.sodocs.net/doc/263635333.html,="宋体"; rtemp.Font.FontStyle="加粗"; rtemp.Font.Size=5; 8 保存新建的内容: worksheet.SaveAs("c:\\temp.xls",Type.missing,Type.missing,Type.missing,Type.missing,Type.missi ng,Type.missing,Type.missing,Type.missing); 北大青鸟中关村软件学院 地址:北京市海淀区中关村大街49号大华科技商厦C座3层

matlab读取excel数据

matlab读取excel office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数据的最佳方式,所以在日常工作中,我们从其它地方获取的数据通常都被保存为xls格式,但处理数据时,我们却需要把xls文件的数据导入到matlab里进行处理。 如果你只处理一个文件并且只做一次的话,你可以手动来拷贝粘贴,这花费不了你太多时间。如果有很多xls文件,或者你的xls文件的内容可能随时被修改,那么下面的方法可以派上用场。 matlab自身提供了大量的函数,包括读取office文件。其中xlsread和xlswrite就是专门用来读取xls文件里的数据的。这两个函数的使用方法可以直接查看matlab自带的帮助。 xlsread对于纯数据的xls文件支持很完美,也就是说当xls文件里的每个格子都是“数”时,xlsread会直接返回一个实数矩阵。但是通常我们拿到xls文件并不是这样,它的表头多半是描述性文字,它的数据也有可能是文字,有些位置的数据还有可能是缺失的。xlsread 对这样的文件读取无能为力,或者说需要大量的时间去协调数据的位置信息。要是有一个函数,能够按照原有的顺序直接读取所有的单位格数据就好了。当然,这时候返回的矩阵就不能是一个数值矩阵了,它将会是一个cell矩阵,里面的每个元素类型可能不一样。 matlab本身并不提供这个功能,但是另外有一个函数officedoc完美的实现这个功能。这个函数包可以去OfficeDoc官方网站上去下载,解压缩后放到工作路径上即可。使用方法可以查询help officedoc。officedoc是收费函数包,但有免费版本,而且其免费版本可以实现上面我们所说的效果(收费版本主要是可以用来修改office文件)。 例子: 在matlab中读取xls格式的文件内容如应用如下函数: 1.bb=xlsread('c:feature.xls','a0:an40'),其中:c:feature.xls为文件存放的地址,a0:a40为将要读取的单元格的范围.bb为读取的矩阵在MATLAB中的变量名. 2.使用m文件脚本如下: Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); Workbooks = Excel.Workbooks; Workbook = invoke(Workbooks, 'Open', [cd,'\feature\ABC.xls']); %% 读取ABC.xls:sheet1 a1(即R1C1)~an40(即R240c40) 范围内的 40by40 矩阵read_excel=ddeinit('excel','ABC.xls:sheet1'); feature1 = ddereq(read_excel, 'R1c1:R40c40'); feature1 %% 关闭ABC.xls invoke(Excel, 'Quit'); delete(Excel); 注意:在使用时将m文件与xls文件存于同一个目录下.另外:sheet1:可以重命名,且读取sheet的名称要和实际存放的名称相同. matlab读取excel,txt文件函数 注意matlab不识别中文,读写的文件中最好不含有中文 excel读取函数xlsread

C++读写excel

在Visual C++ 中调用Excel 2000 程蓬 #ifdef USE_OFFICEXP #import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" #import "c:\\Program Files\\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb" #import "c:\Program Files\Microsoft Office\Office10\MSWORD.olb" rename("ExitWindows","ExitWindowsEx") #import "c:\Program Files\Microsoft Office\Office10\excel.exe" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \ rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture") #else #import "c:\Program Files\Microsoft Office\Office\MSO9.dll" #import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" no_namespace #import "c:\Program Files\Microsoft Office\Office\MSWORD9.OLB" rename("ExitWindows","_ExitWindows") #import "c:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \ rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture") #endif 在开发软件时,经常要将数据输出到Excel 2000中,在Excel 2000中对该数据进行进一步地格式化处理或进行计算处理。在Visual Basic中处理起来较简单,Excel 2000的VB编程帮助中有较为详细的介绍。在Visual C++中如何进行处理了?利用Excel 2000的ActiveX Automate功能,处理起来同VB中类似。但要注意以下几点: 对于对象的属性值的读取或赋值,需要用GetProperty()或SetProperty(NewValue)函数,不能象VB中直接通过属性名称取值或赋值。例如:Worksheet.GetCount(), Worksheet.SetName(“Sheet1”)。 对集合对象中的成员对象的引用,必须使用集合对象的GetItem()函数。例如: Worksheets.GetItem(ColeVariant((long)1))或 Worksheets.GetItem(ColeVariant(“Sheet1”))取得第一个工作表。 在COM接口中,时常用到Variant,BSTR,SafeArray数据类型。Variant数据类型是一个联合,可表示几乎所有的类型的数据,具体用法见MSDN中的相关介绍,类_variant_t是对VARIANT数据类型的封装。在Excel 2000的VB编程帮助中,如果提到某函数或属性需要一个值,该值的数据类型通常是Variant,在封装Excel 2000对象的类定义中,说明了具体需要的数据类型。BSTR是一个包括了字符串和字符串长度的数据结构,类_bstr_t是对BSTR数据类型的封装。在Excel 2000的VB编程帮助中提到的字符串通常指BSTR。具体函数参数或属性的数据类型,见封装该对象的类的定义。SafeArray是一个包括数组和数组边界的结构,数组边界外的内容不允许访问。在Excel 2000的VB编程帮助中提到的数组是指SafeArray。关于SafeArray的处理,请见MSDN的相关帮助。 对于缺省参数和缺省值。在VB中,函数的参数可以空缺,在VC++中不允许,必须将所有的参数填写完全。如果你希望指定某个参数为缺省值,根据参数数据类型的不同,可指定不同的缺省值。当参

(完整word版)教你用C读写、删除、更新excel表格记录

教你用C#读写、删除、更新excel表格记录 如下图所示,编一个程序,鼠标单击窗体视图区(右边)时,获取一对坐标(X,Y),点击保存将点保存到excel表记录中。此外,还实现了删除、更新功能以及打开excel表功能。插入和更新比较简单,和操作一般的数据库一样,但是删除稍微有点复杂,不能用delete from [Sheet1$] where ID=x的方式删除,自己可以去试,主要是excel数据之间的关系不像关系数据库那么简单,oledb不提供这种方法。所以只能用专门操作excel表的(Microsoft.Office.Interop.Excel 名字空间下,先添加引用)来实现删除某条记录的功能。 源代码: using System; using System.Collections.Generic; using https://www.sodocs.net/doc/263635333.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; namespace Leation { public partial class FrmMain : Form { //定义变量 private OleDbConnection connection = null; private OleDbCommand cmd = null; private OleDbDataAdapter dataAdapter = null;

VC读取写入EXCEL2003文件

利用automation 具体如下: 1。你要在新建的工程中导入excel的类库。 以新建基础对话框工工程test为例。建好后通过类向导(ctrl+w)addclass选from a type libray...,excel2003的是excel.exe文件,在c:/program files/microsoft office/office11/文件夹下。选excel.exe,把所有的类都导入,注意使用Shift按键选择。 2。在testApp::InitInstance()中初始化, AfxOleInit();//加在initinstance方法里最前就好。 3. 在对话框中加一个按钮,双击按钮对应的处理函数如下: 别望了在加头文件: 在#include "stdafx.h"后面加#include "excel.h" 3.1//打开Excel文件,使用Excel程序显示,不读数据,也不写入数据,手工使用鼠标关闭Excel文件。 //声明操作excel文件类的对象 _Application objApp;// _application代表了EXCEL服务器 Workbooks objBooks; //workbooks表示整个Excel服务器(表现为一个.xls文件)里所有的表,(可以通过"新建"得到多个表,即MDI程序里的一个视窗一样,所有的视窗就是workbooks), COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //检测电脑上是否安装了Excel程序。 if(!objApp.CreateDispatch("Excel.Application")) { AfxMessageBox("无法启动Excel程序,请正确安装!"); return; } objApp.m_bAutoRelease = TRUE; //??什么意思? objApp.SetVisible(TRUE); //打开Excel程序,没有显示任何数据。 objApp.SetUserControl(TRUE);//允许其它用户控制Excel,否则Excel将一闪即逝 //下面两句的功能和objBooks = objApp.GetWorkbooks(); 一样。 LPDISPATCH pWkBooks = objApp.GetWorkbooks(); //GetWorkbooks什么功能? objBooks.AttachDispatch(pWkBooks,TRUE); //将一个IDispatch连接附着于COleDispatchDriver对象 //获得当前程序所在的路径,excel文件在此路径下。 char CurrentProgramPath[MAX_PATH]; GetCurrentDirectory(MAX_PATH,CurrentProgramPath); CString ExcelFilePathName = CurrentProgramPath;//ExcelFilePathName表示excel文件的路径和文件名 ExcelFilePathName += "\\Data.xls";

C__操作Excel单元格格式解读

C# 操作Excel单元格格式 range.NumberFormatLocal = "@"; //设置单元格格式为文本 range = (Rangeworksheet.get_Range("A1", "E1"; //获取Excel多个单元格区域:本例做为Excel表头 range.Merge(0; //单元格合并动作 worksheet.Cells[1, 1] = "Excel单元格赋值"; //Excel单元格赋值 range.Font.Size = 15; //设置字体大小 range.Font.Underline=true; //设置字体是否有下划线 https://www.sodocs.net/doc/263635333.html,="黑体"; 设置字体的种类 range.HorizontalAlignment=XlHAlign.xlHAlignCenter; //设置字体在单元格内的对其方式 range.ColumnWidth=15; //设置单元格的宽度 range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153.ToArgb(; //设置单元格的背景色 range.Borders.LineStyle=1; //设置单元格边框的粗细

range.BorderAround(XlLineStyle.xlContinuous,XlBorderWeight.xlThick,XlColorIndex. xlColorIndexAutomatic,System.Drawing.Color.Black.ToArgb(; //给单元格加边框range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop.Lin eStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone; //设置单元格上边框为无边框 range.EntireColumn.AutoFit(; //自动调整列宽 Range.HorizontalAlignment= xlCenter; // 文本水平居中方式 Range.VerticalAlignment= xlCenter //文本垂直居中方式 Range.WrapText=true; //文本自动换行 Range.Interior.ColorIndex=39; //填充颜色为淡紫色 Range.Font.Color=clBlue; //字体颜色 xlsApp.DisplayAlerts=false; //保存Excel的时候,不弹出是否保存的窗口直接进行保存

c读取excel文件的几种方法

c读取e x c e l文件的几 种方法 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

C# 读取EXCEL文件的几种经典方法 例子引入(读取时excel要打开) namespace读取excel测试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } lsx|电子表格|*.xls|所有文件|*.*"; oString(); 法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { string strConn = "Provider=" +"Data Source="+ Path +";"+"Extended Properties=Excel ;"; OleDbConnection conn = new OleDbConnection(strConn); (); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel="select * from [sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); (ds,"table1"); return ds; }

对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到 string strConn = "Provider=" +"Data Source="+ Path +";"+"Extended Properties=Excel ;"; OleDbConnection conn = new OleDbConnection(strConn); DataTable schemaTable = string tableName=[0][2].ToString().Trim(); 另外:也可进行写入EXCEL文件,实例如下: public void DSToExcel(string Path,DataSet oldds) { i++) { ewRow(); for(int j=0;j<[0].;j++) { nrow[j]=[0].Rows[i][j]; } ["Table1"].(nrow); } (newds,"Table1"); (); } 2.方法二:引用的com组件:读取EXCEL文件首先是的获取,将Office安装目录下的文件Copy到DotNet的bin目录下,cmd到该目录下,运行 TlbImp 得到Dll文件。再在项目中添加引用该dll文件. oString(); oString(); }

Excel操作的编程实现 c++

针对Excel表格文件操作的编程实现 编译:徐景周 下载本文示例源代码 简介 通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、列、单元格进行查询、插入、替换等操作,同时还可以将生成的Excel文件转换为按指定分隔符分隔的其它文本格式的文件。下面是把此方法用VC6编写的示例程序运行效果: 基本思路 基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名,相当于数据库中的ID 值)。本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需求。

具体实现 一、包含Excel文件操作类头文件 #include "CSpreadSheet.h" 二、新建Excel文件,并写入默认数据 // 新建Excel文件名及路径,TestSheet为内部表名 CSpreadSheet SS("c:\\Test.xls", "TestSheet"); CStringArray sampleArray, testRow; SS.BeginTransaction(); // 加入标题 sampleArray.RemoveAll(); sampleArray.Add("姓名"); sampleArray.Add("年龄"); SS.AddHeaders(sampleArray); // 加入数据 CString strName[] = {"徐景周","徐志慧","郭徽","牛英俊","朱小鹏"}; CString strAge[] = {"27","23","28","27","26"}; for(int i = 0; i < sizeof(strName)/sizeof(CString); i++) { sampleArray.RemoveAll(); sampleArray.Add(strName[i]); sampleArray.Add(strAge[i]); SS.AddRow(sampleArray); } https://www.sodocs.net/doc/263635333.html,mit(); 三、读取Excel文件数据 CSpreadSheet SS("c:\\Test.xls", "TestSheet"); CStringArray Rows, Column;

C操作EXCEL全解代码--资料

C勰作EXCELS解(代码) 提示:运行之前必须先引用Interop.Excel.dll模块 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Windows.Forms; using System.Reflection; using Excel; namespace AnalysisSystem.DB { public class ExcelOperation { private string _fileName;// 保存路径名 public ExcelOperation(string fileName) { _fileName = fileName; } private OleDbConnection GetConnection() { string connectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0”,_fileName); OleDbConnection myConn = new OleDbConnection(connectString);// 建立链接 return myConn;

public System.Data.DataTable ExecuteTableResult(string strSql) ( System.Data.DataTable dt = new System.Data.DataTable(); try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);// 执行相关SQL 语句 da.Fill(dt); } catch (System.Exception ex) ( //do nothing } return dt; } public DataSet ExecuteSetResult(string strSql,string table_name) ( DataSet ds = new DataSet(); string temp_name = "[" + table_name + "$]”; try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn); da.Fill(ds,temp_name); } catch (System.Exception ex) ( //do nothing } return ds; } public string ExecuteOneResult(string strSql) ( string result = ""; System.Data.DataTable dt = new System.Data.DataTable(); try ( OleDbConnection conn = this.GetConnection(); OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn); da.Fill(dt); } catch (System.Exception ex) ( //do nothing }

相关主题