乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 想用vs<em>2010</em>的c,读取excel里的数字,怎么读取呢-c读取excel 2

想用vs<em>2010</em>的c,读取excel里的数字,怎么读取呢-c读取excel 2

作者:乔山办公网日期:

返回目录:excel表格制作


1 使用的命名空间为:using System.Data.OleDb;
2 连接数据库的字e68a84e8a2ade799bee5baa6332符串为:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目录.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以认为是数据库了,HDR表示是否隐藏excel的第一行(因为第一行一般表示字段名称)
IMEX 参数,因为不同的模式代表著不同的读写行为:当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。当 IMEX=2 时为“连结模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mySQLstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,选取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟读取sql是一样
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相关信息记录到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//读取表名信息【注意】由于excel每个单元格内数据默认的格式为:varchar(255),因此读取超过255的单元格内容是需要修改注册表,这里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示从前TypeGuessRows行判断数据的类型。

你指的是excel 2013中的表格吗?如果是单纯的表格的话,你可以将excel文件另存为".csv" (comma-sperated-version, 中文为逗号分隔)格式,每个逗号对应的就是表格的一个单元。例如

// Example.csv
Name, Age, ID
David, 23, 0

就是一个2乘2的表格用.csv的形式来表示的,用C++读入这样的csv文件就可以了7a64e4b893e5b19e339,代码如下:

void readCSV(const char* fileName, vector<vector<string>>& csvVector)
{
ifstream file(fileName);

while (file)
{
string s;
if (!getline(file, s)) break;

istringstream ss(s);
vector <string> record;

while (ss)
{
string s;
if (!getline(ss, s, ',')) break;
record.push_back(s);
}

csvVector.push_back(record);
}
if (!file.eof())
{
cerr << "Fooey!\n";
}
}

参数中的csvVector是一个二维的vector, 分别代表行和列,每次按行读入。
你好


是你的记事本不够高级 o(╯□╰)o

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网