[cpp] view plaincopy
// 1. declare an object
// – fileName Excel 文件路径
// – sheetName Excel 工作表(sheet)名称
// – tableView 需要导出的QTableView指针
ExportExcelObject obj(fileName, sheetName, tableView)
// 2. define fields (columns) to the Excel sheet file
// – 第1个参数是QTableView的列
// – 第2个参数是对应该列的Excel sheet中的列名
// – 第3个参数是该列的类型,可以使用char(x) (x最大255),int,datetime, 等
obj.addField(1, tr("name"), "char(60)")
obj.addField(2, tr("ID"), "int")
obj.addField(3, tr("time"), " datetime ")
// 3. 该类有特定的SIGNAL用于连接一个progress控件,可以显示导出进度
connect(&obj, SIGNAL(exportedRowCount(int)), progressBar, SLOT(setValue(int)))
// 4. do the work
int retVal = obj.export2Excel()
if(retVal >0)
{//done
}
else
{//something wrong
}
那么这个类是怎样实现的呢?
1. 将Excel文件当成是一个数据库
使用MS的ODBC或ADO都可以将Excel文件当做一个数据库,那么我们只需要使用下面这个DSN连接串去创建并连接至该Excel文件:
[cpp] view plaincopy
QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)}DSN=''FIRSTROWHASNAMES=1CREATE_DB=/"%1/"DBQ=%2").
arg(excelFilePath).arg(excelFilePath)
2. 将Excel的工作表(sheet)当成是一个数据库表
可以使用SQL语句“CREATE TABLE” 去创建一个工作表。
3. 向表中插入数据
使用SQL的“INSERT”语句插入数据。
4. Unicode支持
是的,列名和数据都支持Unicode。
材料/工具:SQL Server
1、打开SQL Server,找到需要导出的数据库。
2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。
3、SQL Server导入和导出向导窗口中,单击下一步按钮。
4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。
5、选择使用SQL Server身份验证,输入用户名和密码,选择要导出的数据库,单击下一步。
6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。
7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。
8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。
9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。
10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。
11、选择源表和源视图对话框中,选择自己要导出的表和视图。
12、运行包对话框中,单击完成按钮,数据就成功导出了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)