我是靠谱客的博主 霸气百褶裙,最近开发中收集的这篇文章主要介绍Qt中向单元格中写入日期数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一种,用QAxObject来实现,主要用单元格的属性NumberFormatLocal,代码如下

QAxObject excel("Excel.Application");
	excel.setProperty("Visible", false);
	QAxObject *work_books = excel.querySubObject("WorkBooks");
	work_books->dynamicCall("Open(const QString&)", fileName);
	QAxObject *work_book = excel.querySubObject("ActiveWorkBook");
	QAxObject *work_sheets = work_book->querySubObject("Sheets");

	int sheet_count = work_sheets->property("Count").toInt();

	for (int i = 1; i <= sheet_count; i++) {
		QAxObject *work_sheet = work_book->querySubObject("Sheets(int)", i);
		QAxObject *cell = work_sheet->querySubObject("Cells(int,int)", 1, 1);
		cell->setProperty("NumberFormatLocal", "yyyy/m/d");
		cell->setProperty("Value", value);
	}

	work_book->dynamicCall("Save()");
	work_book->dynamicCall("Quit(Boolean)", false);
	excel.dynamicCall("Quit(void)");


第二种,用QtXlsx库(只限于2007版以后的xlsx)

主要用bool Document::write(const CellReference &row_column, const QVariant &value, const Format &format)
具体的格式参考https://support.office.com/en-us/article/Create-a-custom-number-format-78f2a361-936b-4c03-8772-09fab54be7f4?CorrelationId=dd568149-4a96-45d4-912c-bd3c642b32ce&ui=en-US&rs=en-US&ad=US

QXlsx::Document xlsx(fileName);
	QXlsx::Format format;
	format.setNumberFormat("yyyy/m/d");

	QStringList sheets = xlsx.sheetNames();
	for (int i = 0, count = sheets.count(); i < count; i++) {
		QString sheetName = sheets.at(i);
		QXlsx::Worksheet *sheet = dynamic_cast<QXlsx::Worksheet *>(xlsx.sheet(sheetName));

		sheet->write("A1", value, format);
		
	}
	xlsx.save();


 

最后

以上就是霸气百褶裙为你收集整理的Qt中向单元格中写入日期数据的全部内容,希望文章能够帮你解决Qt中向单元格中写入日期数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部