qt excel 输出 html,qt技巧--使用html导出表格替代excel

曾经为qt不能直接导出excel而困扰,后来经过深入了解,得知qt支持xml国际语言,html是xml的一种。html是做网页的,相信大家比较熟悉。所以使用html的

生成表格。然后导出html格式文件。或者直接导出xls格式。excel是能够直接识别的。

下附简短代码:

//初始化QTextEdit里面的内容

void MainWindow::initText()

{

QString begin = QString::fromLocal8Bit("

表格测试
序号 日期  飞机  大炮  火箭  轮船  汽车  我的自行车

QString mid = QString::fromLocal8Bit("

%1%2%3%4%5%6%7%8");

QString end = QString::fromLocal8Bit("

");

QString mid2 = mid.arg(1).arg(2).arg(3).arg(4).arg(5).arg(6).arg(7).arg(8);

QString mid3 = mid.arg("a").arg("b").arg("c").arg("d").arg("e").arg("f").arg("g").arg("h");

begin.append(mid2);

begin.append(mid3);

begin.append(end);

textEdit->setText(begin);

}

//保存文件对话框(对于某些格式QTextDocumentWriter可直接保存,其他不支持的格式就用QTextStream以流的形式保存 )

void MainWindow::on_actionSave_as_triggered()

{

QString fn = QFileDialog::getSaveFileName(this, tr("Save as..."),

QString(), tr("EXCEL files (*.xls);;ODS files (*.ods);;ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)"));

if (fn.isEmpty())

return;

if (! (fn.endsWith(".xls", Qt::CaseInsensitive)||fn.endsWith(".odt", Qt::CaseInsensitive) || fn.endsWith(".htm", Qt::CaseInsensitive) || fn.endsWith(".html", Qt::CaseInsensitive)|| fn.endsWith(".ods", Qt::CaseInsensitive)) )

fn += ".xls"; // default

if (fn.endsWith(".odt", Qt::CaseInsensitive)){

QTextDocumentWriter writer(fn);

writer.write(textEdit->document());

}else{

QFile index(fn);

if (index.open(QFile::WriteOnly | QIODevice::Text))

{

QTextStream liu(&index);

liu.setCodec("UTF-8");

liu<document()->toHtml("UTF-8");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值