Qt中csv文件的导入与导出(zz)
来源:互联网 发布:shuffle python 编辑:程序博客网 时间:2024/06/06 00:30
全称:Comma Separated Values。
是“逗号分隔值”的英文缩写,通常是纯文本文件,一般用wordWPS或是记事本打开。
2.规则:
(1)开头不留空,以行为单位。
(2)可含或不含列名,含列名则居文件第一行。
(3)一行数据部跨行,无空行。
(4)以半角逗号作分隔符,列为空也要表达其存在。
(5)列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。
(6)列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
(7)文件读写时引号,逗号操作规则互逆。
(8)内码格式不限,可为 ASCII、Unicode 或者其他。
(9)不支持特殊字符
3.使用:(csv文件的导入导出)
先看下一个基本demo的ui:
(1)获取控件信息导入到csv文件中:
void mainDialog::exportMsg()
{
//获取创建的csv文件名
QString fileName = QFileDialog::getSaveFileName(this, tr("Excel file"), qApp->applicationDirPath (),
tr("Files (*.csv)"));
if (fileName.isEmpty())
return;
//打开.csv文件
QFile file(fileName);
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
std::cerr << "Cannot open file for writing: "
<< qPrintable(file.errorString()) << std::endl;
return;
}
QTextStream out(&file);
//获取数据
QString sName = ui->lineEdit->text();//姓名
Int iAge = ui->spinBox->tvalue();//年龄
out << tr("姓名:,") << sName << ",\n";
out << tr("年龄:,") << iAge << ",\n";
out << tr("1,") << tr("2,")<< tr("3,") << tr("4,") <<",\n";//表头
//获取表格内容
int row = ui->tableWidget->rowCount();//表格总行数
for(int i = 0; i < row; i ++)
{
for(int col = 0; col < 4; col++)
{
QString string = ui->tableWidget->item(i, col)->text();
out << string << ",";// 写入文件
}
out << "\n";
}
QMessageBox::information(this, tr("导出数据成功"), tr("信息已保存在%1!").arg(fileName), tr("确定"));
file.close();
}
这就是导出之后.csv文件中的内容:
(2)将csv文件中信息导入控件:
void mainDialog::importMsg()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Excel file"), qApp->applicationDirPath (),
tr("Files (*.csv)"));
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
std::cerr << "Cannot open file for reading: "
<< qPrintable(file.errorString()) << std::endl;
return;
}
QStringList list;
list.clear();
QTextStream in(&file);
int i =0;
while(!in.atEnd())
{
QString fileLine = in.readLine();
list = fileLine.split(",", QString::SkipEmptyParts);
//姓名
if(i == 0) ui->lineEdit->setText(list.at(1));
//年龄
if(i == 1) ui->spinBox->setValue(list.at(1));
//表头
if(i == 2) ui->tableWidget->setHorizontalHeaderLabels(QStringList() << list.at(0) << list.at(1)
<< list.at(2) << list.at(3);
//表内容
if(i == 3)
{
for(int a = 0; a < 4; a++)
{
ui->tableWidget->setItem(0, a, new QTableWidgetItem(list.at(a)));
}
}
if(i > 3)
{
for(int b = 0; b < 4; b++)
{
ui->tableWidget->setRowCount(i-2);//设置添加一行
ui->tableWidget->setItem(i-3, b, new QTableWidgetItem(list.at(b)));
}
}
i++;
}
file.close();
}
好了,完成啦。。。
- Qt中csv文件的导入与导出(zz)
- Qt中csv文件的导入与导出
- Qt中csv文件的导入与导出
- Qt中csv文件的导入与导出
- Java编程之CSV文件导入与导出的实现
- Java编程之CSV文件导入与导出的实现
- csv文件导入导出
- csv文件导入导出
- C#的CSV文件导入导出
- JAVA操作csv文件(导入导出)
- C++导入导出CSV文件
- MySQL导入导出CSV文件
- MySQL导入导出CSV文件
- MySQL导入导出CSV文件
- C++导入导出CSV文件
- mysql导入导出csv文件
- MySQL导入导出CSV文件
- mysql导入/导出CSV文件
- cvbncv
- toStdString()
- 防火墙相关
- ARM 所有工具 DS-5 RVDS DSTREAM RVI 等支持的主机操作系统
- jvm内存查看与分析工具
- Qt中csv文件的导入与导出(zz)
- .Net技术交流群,为广大ASp.Net爱好者营造一个良好的学习氛围
- Android实现下拉导航选择菜单效果
- 折腾二维数组(哎,真的把自己折腾死了,虽然在做的时候错了好多地方,需要认真改错,但是看到最后的结果,真的很开心)
- C# WinForm中如何保存一个文本文件或cs文件
- ORACLE任务的概念
- POJ 2155 Matrix 树状数组
- invalidate()和postInvalidate() 的区别及使用
- Oracle 生成拼音码