概述
第一种,用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中向单元格中写入日期数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复