关于c#:DataTable可读文本字符串

关于c#:DataTable可读文本字符串

DataTable to readable text string

这可能有点愚蠢,但是我需要通过文本电子邮件发送DataTable的内容(未知列,未知内容)。 基本思想是遍历行和列,并使用.ToString()将所有单元格内容输出到StringBuilder中。

格式化是一个大问题。 关于如何使其以文本格式"可读"的任何提示/想法?

我正在考虑用空格填充每个单元格,但是我还需要将一些单元格分成多行,这会使StringBuilder的方法有点混乱(因为第一列的第二行文本在第一行之后 最后一列中的一行文本,依此类推)


首先获取每列的最大大小。这样,包含邮政编码的varchar(255)列就不会占用太多空间。

也许您可以拆分整个表格,而不是拆分单行。将表的完整右侧部分放入第二个stringbuilder中,并将其放在第一个表格之下。

您还可以为用户提供创建逗号分隔文本的选项,以便接收者可以将表格导入电子表格中。


这听起来像是一个非常可怕的解决方案,但它可能会起作用:

将DataTable内容呈现到DataGrid / GridView(假定ASP.NET)中,然后屏幕将其刮取。

我告诉过你那会很乱。


将数据表转换为HTML表并发送HTML邮件是否可以替代?如果他们的客户支持的话,那将使接收端变得更好。


是否需要很好地格式化,还是自动系统会在另一端接收邮件?如果是后者,则只需使用数据表的.WriteXml()方法。


我通过专门为此任务编写一个自定义格式化程序来完成此工作。该代码长约120 -130行,所以我不知道是否应该在此处发布它作为答案(也许将.cs文件附加到主题的功能很不错!)。

无论如何,如果有人对此感兴趣,请告诉我,我将提供代码。


循环遍历数据表并将其作为HTML电子邮件发送-从数据表生成html表并将其作为电子邮件正文发送。


您可以这样做(如果是VB):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Dim Str As String =""
    'Create File if doesn't exist
        Dim FILE_NAME As String ="C:\\temp\\Custom.txt"
        If System.IO.File.Exists(FILE_NAME) = False Then
            System.IO.File.Create(FILE_NAME)
        End If

        Dim objWriter As System.IO.StreamWriter
        Try
            objWriter = New System.IO.StreamWriter(FILE_NAME)
        Catch ex As System.IO.IOException
            MsgBox("Please close the file: (C:\\temp\\Custom.txt) before proceeding" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Exclamation)
            objWriter = Nothing
            Err = True
        End Try


'I assume you know how to write to text file.
'
Say my datagridview is named"dgrid"

Dim x,y as integer

For x = 0 to dgrid.rows.count -1
    For y = 0 to dgrid.columns.count - 1
       Str = dgrid.Rows(x).Cells(y).Values &""
   Next y
Next x

objWriter.Close()

资源。

或者,您甚至可以从DataTable生成CSV文件。


推荐阅读

    linux拼接字符串命令?

    linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,l

    linux输出第二列命令?

    linux输出第二列命令?,数据,信息,时间,软件,百度,单位,适当,系统,命令,文件,l

    linux命令行输出暂停?

    linux命令行输出暂停?,暂停,服务,系统,管理,代码,环境,信息,数据,网络,跨行,E

    添加字符串命令linux?

    添加字符串命令linux?,情况,名称,文件,位置,名字,地方,连续,信息,命令,内容,L

    linux替换文本命令?

    linux替换文本命令?,信息,系统,命令,内容,文件,文本,字符串,字符集,单词,字

    linux替换文本的命令?

    linux替换文本的命令?,系统,地址,工作,信息,命令,标准,数据,内容,文件,字符

    linux命令输出加时间?

    linux命令输出加时间?,时间,系统,名称,设备,命令,信息,管理,标准,数字,百度,l

    linux命令日志输出?

    linux命令日志输出?,系统,状态,命令,情况,对比,标准,实时,服务,下来,数据,怎

    linux命令输出到vi?

    linux命令输出到vi?,工作,系统,状态,档案,命令,模式,信息,正规,第一,编辑,lin

    linux命令输出截取?

    linux命令输出截取?,位置,网上,信息,命令,字符串,字符,左边,日志,中间,之间,L

    linux命令输出计算?

    linux命令输出计算?,标准,地址,工作,信息,系统,命令,软件,数据,文件,控制台,l

    linux持续命令输出?

    linux持续命令输出?,系统,工作,地址,信息,情况,状态,数据,管理,工具,指标,lin

    linux命令行打印输出?

    linux命令行打印输出?,地址,工作,命令,网络,信息,标准,系统,文件,目录,控制

    linux编辑文本命令行?

    linux编辑文本命令行?,工作,系统,信息,状态,地址,命令,管理,标准,目录,文件,L

    linux命令查找字符串?

    linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文

    linux查看文本的命令?

    linux查看文本的命令?,系统,工作,标准,信息,命令,管理,数据,文件,目录,时间,L

    linux文本中插入命令?

    linux文本中插入命令?,工作,地址,系统,命令,信息,第一,工具,地方,密码,情况,L

    linux命令输出最大值?

    linux命令输出最大值?,地址,网络,系统,时间,数据,高位,较大,位置,不了,最大

    linux文本撤销命令?

    linux文本撤销命令?,系统,命令,信息,环境,状态,进程,程序,终端,快捷键,用户,

    linux命令中创建文本?

    linux命令中创建文本?,系统,时间,文件,终端,名字,名称,发行,命令,文件夹,文