【问题标题】:Print data in a table like format以表格格式打印数据
【发布时间】:2013-02-04 18:24:33
【问题描述】:

所以我有一些数据存储到一个对象中,我需要检索数据并将其以表格格式输出。我尝试过使用格式说明符,并且由于字符的宽度,信息会发生变化。我需要创建类似于表格的东西,返回该对象,然后能够在一张纸上打印信息而不打印单元格线。我尝试了一个数据表,但我看不到表中的信息。最简单的方法是什么?它是一个 Windows 窗体应用程序。用户将信息保存在 3 个类中。使用列表。我尝试使用空格和 \t 来制表格式。但是根据字符的宽度,格式会偏离几个空格。数据的长度也可以在 1-3 个字符之间来回变化。

【问题讨论】:

  • ASP?表格? WPF?我们需要更多信息。
  • 需要更多细节。根据您给我的信息,我只能告诉您“生成自定义对象存储方法和自定义打印输出方法,您可以根据需要设置格式”我们不知道对象或数据的结构,所以我们可以没有更具体的答案......或者至少,我不能。
  • 取决于您可以为此投入多少时间/精力以及输出应该有多好,您可以创建一个 html 文件(很简单,因为它只是用string.ToFormat 并添加表格相关标签)或使用报告引擎。对于专业级别的报告,DevExpress XtraReports 非常强大,或者看看这里:stackoverflow.com/questions/788923/…

标签: c# winforms tabular


【解决方案1】:

只需从对象中填充数据表,并将 datagridview 源设置为数据表。

public class Form1
{
    public void BuildDataTable()
    {
        DataTable dt = new DataTable("Customers");  
        dt.Columns.Add(new DataColumn("LastName")); 
        dt.Columns.Add(new DataColumn("FirstName")); 

        // Populate the table 
        dt.Rows.Add("Baggins", "Bilbo");
    }


    private void Button2_Click(System.Object sender, System.EventArgs e)
    {
        PrintDocument1.Print();
    }

    private void PrintDocument1_PrintPage(object sender, PrintPageEventArgs e)
    {
         Bitmap bm = new Bitmap(this.DataGridView1.Width, this.DataGridView1.Height);
         DataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.DataGridView1.Width, this.DataGridView1.Height));
         e.Graphics.DrawImage(bm, 0, 0);
    }
}

【讨论】:

  • 我有将数据打印到纸上的代码,我需要代码来生成数据格式的表格
  • 检查我上面的修改答案。
  • 调试时如何检查表值是否位于正确位置?
  • 如果数据网格有滚动条并且某些行被隐藏了怎么办??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
相关资源
最近更新 更多