名称 | 说明 |
FromExcel | 将Excel文件导出至DataTable(第一行作为表头) |
FromExcel32 | 将Excel文件导出至DataTable(第一行作为表头)此方法只有在32位操作系统中可以使用。 |
ToExcel | 将数据导出至Excel文件 |
ToExcel32 | 将数据导出至Excel文件。此方法只有在32位操作系统中可以使用。 |
这几个扩展方法主要是为了实现将DataTableHelp转换成Excel或者从Excel加载DataTableHelp数据。下面我们就直接以示例来说明如何使用。
语法:
ToExcel(excelFilePath,overWriteFile,listOfOutColName)
ToExcel32(excelFilePath,overWriteFile,listOfOutColName)
参数说明
名称 | 说明 |
excelFilePath | 必填项,字符串类型,导出Excel文件保存路径。 |
overWriteFile | 可选项,逻辑类型,是否覆盖之前存在的文件。默认值为False。 |
listOfOutColName | 可选项,字符集合类型,要导出的列名称集合。如果想导出指定的部分列,可以将列名做成一个集合然后传递。默认为空,则会导出所有字段。 |
语法:
FromExcel(excelFilePath,tableName,includeHeader)
FromExcel32(excelFilePath,tableName)
名称 | 说明 |
excelFilePath | 必填项,字符串类型,导入Excel文件路径。 |
tableName | 可选项,字符串类型,Excel表名,如果表名错误,默认为第一个表名。默认值为空字符串,会直接取第一个表名。 |
includeHeader | 可选项,逻辑类型,Excel数据是否包含表标题。如果设置为True,则认为第一行为标题行,如果设置为False,则认为Excel表中所有数据都为数据,会从第一行开始读取数据。默认为True。 |
Vb.Net |
Dim db As Database=Proj.SysDataFactory("UserDB") Dim strSQL As String="select * from 订单信息 Where 产品='产品01' and 客户='客户02'" Dim dt As DataTableHelp=db.ExecuteDataTableHelp(strSQL) Proj.MsgDebug.Add("从数据库获取的数据共{0}条。",dt.DataRows.Count) '用通用的方式直接导出到Excel dt.ToExcel("D:\test.xls",True,Nothing) Dim lstCol As New List(Of String) lstCol.Add("产品") lstCol.Add("客户") lstCol.Add("业务员") lstCol.Add("单价") lstCol.Add("数量") lstCol.Add("金额") lstCol.Add("日期") '用通用的方式导出指定的部分列到Excel dt.ToExcel("D:\testSomeCols.xls",True,lstCol) '以下的方法仅适合32位操作系统 If Environment.Is64BitProcess=False Then '用安装的Excel直接导出到Excel dt.ToExcel32("D:\test32.xls",True,Nothing) '用安装的Excel导出指定的部分列到Excel dt.ToExcel32("D:\testSomeCols32.xls",True,lstCol) End If Dim dtNew As New DataTableHelp '=db.ExecuteDataTableHelp(strSQL,False,False) dtNew.FromExcel("D:\test.xls","",True) Proj.MsgDebug.Add("从Excel获取的数据共{0}条。",dtNew.DataRows.Count) '以下的方法仅适合32位操作系统 If Environment.Is64BitProcess=False Then '防止之前的数据对结果产生影响,先清空之间的数据 dtNew.DataRows.Clear() dtNew.FromExcel32("D:\test.xls","") Proj.MsgDebug.Add("从Excel获取的数据共{0}条。",dtNew.DataRows.Count) End If |
C# |
Database db = Proj.SysDataFactory["UserDB"]; string strSQL = "select * from 订单信息 Where 产品='产品01' and 客户='客户02'"; DataTableHelp dt = db.ExecuteDataTableHelp(strSQL); Proj.MsgDebug.Add("从数据库获取的数据共{0}条。", dt.DataRows.Count); // 用通用的方式直接导出到Excel dt.ToExcel(@"D:\test.xls", true, null/* TODO Change to default(_) if this is not a reference type */); List<string> lstCol = new List<string>(); lstCol.Add("产品"); lstCol.Add("客户"); lstCol.Add("业务员"); lstCol.Add("单价"); lstCol.Add("数量"); lstCol.Add("金额"); lstCol.Add("日期"); // 用通用的方式导出指定的部分列到Excel dt.ToExcel(@"D:\testSomeCols.xls", true, lstCol); // 以下的方法仅适合32位操作系统 if (Environment.Is64BitProcess == false) { // 用安装的Excel直接导出到Excel dt.ToExcel32(@"D:\test32.xls", true, null/* TODO Change to default(_) if this is not a reference type */); // 用安装的Excel导出指定的部分列到Excel dt.ToExcel32(@"D:\testSomeCols32.xls", true, lstCol); } DataTableHelp dtNew = new DataTableHelp(); // =db.ExecuteDataTableHelp(strSQL,False,False) dtNew.FromExcel(@"D:\test.xls", "", true); Proj.MsgDebug.Add("从Excel获取的数据共{0}条。", dtNew.DataRows.Count); // 以下的方法仅适合32位操作系统 if (Environment.Is64BitProcess == false) { // 防止之前的数据对结果产生影响,先清空之间的数据 dtNew.DataRows.Clear(); dtNew.FromExcel32(@"D:\test.xls", ""); Proj.MsgDebug.Add("从Excel获取的数据共{0}条。", dtNew.DataRows.Count); } |