Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > DataTableHelp > 格式转换 >
ToCSV
名称 说明
FromCSV 将SVG文件读取到DataTable(第一行作为表头)
FromCSV32 将CSV文件读取到一个DataTable对象中。此方法只有在32位操作系统中可以使用。
ToCSV 将DataTable对象里面的数据写到一个指定的CSV文件里面。

这几个扩展方法主要是为了实现将DataTableHelp转换成Excel或者从Excel加载DataTableHelp数据。下面我们就直接以示例来说明如何使用。

语法:

ToCSV(svgFilePath,includeHeaders,listOfOutColName)

参数说明

名称 说明
svgFilePath 必填项,字符串类型,保存的CSV文件路径。
includeHeaders 必填项,逻辑类型,SVG表格中是否包含表头。
listOfOutColName 可选项,整数集合类型,要导出的列的序列号集合。如果想导出指定的部分列,可以将列名做成一个集合然后传递。默认为空,则会导出所有字段。

语法:

FromCSV(svgFilePath,includeHeader)

FromCSV32(svgFilePath,includeHeader)

名称 说明
svgFilePath 必填项,字符串类型,保存的CSV文件路径。
includeHeader 必填项,逻辑类型,CSV数据是否包含表标题。如果设置为True,则认为第一行为标题行,如果设置为False,则认为CSV表中所有数据都为数据,会从第一行开始读取数据。默认为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)
'用通用的方式直接导出到csv
dt.ToCSV("D:\outputCSV.csv",True,Nothing)

Dim lstCol As New List(Of String)
lstCol.Add("产品")
lstCol.Add("客户")
lstCol.Add("业务员")
lstCol.Add("单价")
lstCol.Add("数量")
lstCol.Add("金额")
lstCol.Add("日期")
'用通用的方式导出指定的部分列到csv
dt.ToCSV("D:\outputCSVSomeCols.csv",True,lstCol)

Dim dtNew As New DataTableHelp
dtNew.FromCSV("D:\outputCSV.csv",True)
Proj.MsgDebug.Add("从csv获取的数据共{0}条。",dtNew.DataRows.Count)

'以下的方法仅适合32位操作系统
If Environment.Is64BitProcess=False Then
    '防止之前的数据对结果产生影响,先清空之间的数据
    dtNew.DataRows.Clear()
    dtNew.FromCSV32("D:\outputCSVSomeCols.csv",True)
    Proj.MsgDebug.Add("从csv获取的数据共{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);
// 用通用的方式直接导出到csv
dt.ToCSV(@"D:\outputCSV.csv", true, null);

List<string> lstCol = new List<string>();
lstCol.Add("产品");
lstCol.Add("客户");
lstCol.Add("业务员");
lstCol.Add("单价");
lstCol.Add("数量");
lstCol.Add("金额");
lstCol.Add("日期");
// 用通用的方式导出指定的部分列到csv
dt.ToCSV(@"D:\outputCSVSomeCols.csv", true, lstCol);

DataTableHelp dtNew = new DataTableHelp();
dtNew.FromCSV(@"D:\outputCSV.csv", true);
Proj.MsgDebug.Add("从csv获取的数据共{0}条。", dtNew.DataRows.Count);

// 以下的方法仅适合32位操作系统
if (Environment.Is64BitProcess == false)
{
    // 防止之前的数据对结果产生影响,先清空之间的数据
    dtNew.DataRows.Clear();
    dtNew.FromCSV32(@"D:\outputCSVSomeCols.csv", true);
    Proj.MsgDebug.Add("从csv获取的数据共{0}条。", dtNew.DataRows.Count);
}