Я хочу получить записи из Excel, используя C++ и хочу контролировать вывод с определенными данными столбца, скажем, идентификатор книги
#include <iostream>
#include<fstream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string name1;
int i=2;
int d1=i;
string name2="c++programming";
string author_name1="nileshchanglani";
ofstream myfile;
myfile.open("my excel.xls");
for(i=1;i<10;i++)
myfile<<i<< "\t"<<name2<<"\t"<<author_name1<<endl;
myfile.close();
myfile.open("my excel.csv");
for(i=1;i<10;i++)
{
myfile<<i<<","<<name2<<","<<author_name1<<endl;
}
myfile.close();
ifstream myfile1;
myfile1.open("my excel.xls");
int bookid;
string name,author_name;
while(myfile1 >> bookid >> name2>> author_name)
if(bookid==3)
cout<<bookid<<" "<<name2<<" "<<author_name<<endl;
(myfile1>>bookid>>name2>>author_name);
cout<<bookid<<" "<<name2<<" "<<author_name<<endl;
}
я пытаюсь преобразовать столбцы из таблицы Excel в переменную id name2 и имя автора и пытаюсь контролировать вывод с помощью номера id, кодирующего runnig нормально, пока в имени автора и имени книги нет пробелов, но это дает мне только 1 вывод записи, если есть пробелы в названии книги и имени автора.
1 ответ
Если вы хотите разобрать Excel, вам лучше будет искать парсеры CVS(Comma Separated Value), например
https://github.com/ben-strasser/fast-cpp-csv-parser
Excel имеет тот же формат. Если вы откроете файл excel в текстовом редакторе, вы увидите данные, разделенные "," или ";".