/* 求助 */---/*** 在vb.net中DataSet导出CSV格式 或反之***/

dingy29 2005-03-02 09:49:17
紧急,解决问题,立即结贴!!!各位高手帮帮忙!!!
...全文
252 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
simon8181 2005-03-30
  • 打赏
  • 举报
回复
foreach -> for each
dingy29 2005-03-30
  • 打赏
  • 举报
回复
因为前几天一直没人回,一忙,就忘了上了
如果有完全代码,当然要了,
johnny_mcoc(王) 谢谢!
尚和空四 2005-03-07
  • 打赏
  • 举报
回复
建议从头开始学习
看人生豪迈
大不了从头在来
johnny_mcoc 2005-03-04
  • 打赏
  • 举报
回复
我也正在做这个,不过比较烦,成功是成功了
楼主要否
haoco 2005-03-04
  • 打赏
  • 举报
回复
up
机器人 2005-03-03
  • 打赏
  • 举报
回复
strRow += dataTable(i)(j) 改为: strRow += dataTable.Rows(i)(j).ToString()
机器人 2005-03-03
  • 打赏
  • 举报
回复
'传入DataTable ,文件名,导出csv.
Public Function WriteToCSV(ByVal dataTable As DataTable, ByVal filePath As String, ByVal records As ArrayList) As Boolean
Dim fileStream As System.IO.FileStream
Dim streamReader As System.IO.StreamReader
Dim streamWriter As System.IO.StreamWriter
Dim i, j As Integer
Dim strRow As String

Try
If (System.IO.File.Exists(filePath)) Then
System.IO.File.Delete(filePath)
End If

fileStream = New FileStream(filePath, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write)

If Not dataTable Is Nothing Then
streamWriter = New StreamWriter(fileStream, System.Text.Encoding.Default)

For i = 0 To dataTable.Rows.Count - 1
strRow = ""
For j = 0 To dataTable.Columns.Count - 1
strRow += dataTable(i)(j)
If j < dataTable.Columns.Count - 1 Then
strRow += ","
Else
Next
streamWriter.WriteLine(strRow)
Next
streamWriter.Close()
End If

fileStream.Close()

Return True
Catch ex As Exception

Return False
End Try

End Function
hamadou 2005-03-03
  • 打赏
  • 举报
回复
up!
liulxmooo 2005-03-03
  • 打赏
  • 举报
回复
up
dingy29 2005-03-03
  • 打赏
  • 举报
回复
能不能给我一个VB.net版的
dingy29 2005-03-02
  • 打赏
  • 举报
回复
up
dingy29 2005-03-02
  • 打赏
  • 举报
回复
你给的我也找到了,不过我怎么不能引入System.Web.UI.WebControls;
foreach是自定义的还是,系统函数,如果是系统函数,在VB中怎么使用
haoztao 2005-03-02
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/
更多资料,自己看
haoztao 2005-03-02
  • 打赏
  • 举报
回复
DataSet导出CSV格式(ASP.NET,C#)

作者:Not
MSN:notking@hotmail.com
Email:nots@sohu.com

本文引用下面的 Microsoft .NET 框架类库命名空间:
System.Data;
System.Web.UI.WebControls;

概要
本文解决将DataSet导出到CSV格式问题、将DataGrid中的数据导出到CSV格式问题

导出DataSet所有的列到CSV格式
遍历DataSet的Tables
遍历Table的Rows
遍历Rows的Columns

代码
/// <summary>
/// 将DataSet导出成CSV格式
/// </summary>
/// <param name="ds">DataSet</param>
/// <returns>CSV字符串数据</returns>
public static string ExportCSV(DataSet ds)
{
string data = "";
//data = ds.DataSetName + "
";

foreach(DataTable tb in ds.Tables)
{
data += tb.TableName + "
";

//写出列名
foreach (DataColumn column in tb.Columns)
{
data += column.ColumnName + ",";
}
data += "
";

//写出数据
foreach (DataRow row in tb.Rows)
{
foreach (DataColumn column in tb.Columns)
{
data += row[column].ToString() + ",";
}
data += "
";
}
data += "
";
}

return data;
}

DataSet与DataGrid问题
一般情况下我们用DataGrid显示DataSet时,只显示我们需要的列,并不显示DataSet所有的列,所以导出成CSV格式的时候可能只需要导出DataGrid中的列。

本文解决方法:
将DataSet中需要导出的列做上标记,在导出时只将有标记的列导出。

代码
/// <summary>
/// 标记DataColumn为接受导出的
/// </summary>
/// <param name="column">DataColumn</param>
public static void SetExport(DataColumn column)
{
if (column != null)
{
if (column.ExtendedProperties["IsExport"] == null)
column.ExtendedProperties.Add("IsExport", "true");
else
column.ExtendedProperties["IsExport"] = "true";
}
}

/// <summary>
/// 标记DataTable中的一些列为接受导出的
/// </summary>
/// <param name="tb">DataTable</param>
/// <param name="columns">列</param>
public static void SetExport(DataTable tb,params string[] columns)
{
foreach(string column in columns)
{
SetExport(tb.Columns[column]);
}
}

/// <summary>
/// 标记DataTable中的一些列为接受导出的
/// </summary>
/// <param name="tb">DataTable</param>
/// <param name="columns">DataGrid的列</param>
public static void SetExport(DataTable tb,DataGridColumnCollection columns)
{
foreach(DataGridColumn column in columns)
{
if (column.GetType().Name == "BoundColumn" || column.GetType().Name == "HyperLinkColumn" || column.GetType().Name == "TemplateColumn")
SetExport(tb.Columns[column.HeaderText]);
}
}

/// <summary>
/// 判断DataColumn是否为接受导出的
/// </summary>
/// <param name="column">DataColumn</param>
/// <returns>bool型的结果</returns>
public static bool IsExport(DataColumn column)
{
if (column.ExtendedProperties["IsExport"] != null && column.ExtendedProperties["IsExport"].ToString().Trim().ToLower() == "true")
return true;
else
return false;
}


使用示例:
Export.SetExport(ds.供应商列表视图,dg.Columns);

string data = Export.ExportCSV(ds);

string temp = string.Format("attachment;filename={0}","ExportData.csv");
Response.ClearHeaders();
Response.AppendHeader("Content-disposition", temp);
Response.Write(data);
Response.End();

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧