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几种方法的体会(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文件的几种方法 最近单位有个项目需要读取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数据的方式(两种) 方式一、导入数据到数据集对象,只支持Excel的标准格式,即不能合并单元格等等 ///
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# 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)
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 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 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
在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++中不允许,必须将所有的参数填写完全。如果你希望指定某个参数为缺省值,根据参数数据类型的不同,可指定不同的缺省值。当参
教你用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;
利用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单元格格式 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读取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表格文件操作的编程实现 编译:徐景周 下载本文示例源代码 简介 通过本文及配套示例源码你可以更加灵活的控制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勰作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 }