精华内容
下载资源
问答
  • 打印DataGridView表格 C#

    2013-07-31 16:05:54
    对于需要打印DataGridView表格的窗口,提供简便的打印方法
  • C# 打印表格 winform打印Excel表格

    热门讨论 2009-10-28 11:34:21
    里面包含了两个控件,和一份使用说明。使用说明里面有例子。简单易用!虽然分是贵了一点,不过物超所值。因为我也找了很久!
  • 1. 统计表格没一列中的最长的字符串的长度. 2. 打印一列的时候,使用最长的长度作为列的长度. 3. java中可以通过System.out.printf("%长度s",string).这样的形式按长度打印.

    java打印表格 将ResultSet中的数据打印成表格

    问题描述

    MySQL的查询语句输出如下:

    mysql> select * from instructor;
    +-------+------------+------------+-----------+
    | ID    | name       | dept_name  | salary    |
    +-------+------------+------------+-----------+
    | 10101 | Srinivasan | Comp. Sci. | 65000.00  |
    | 12121 | Wu         | Finance    | 90000.00  |
    | 15151 | Mozart     | Music      | 40000.00  |
    | 22222 | Einstein   | Physics    | 95000.00  |
    | 25566 | Brown      | Biology    | 100000.00 |
    | 30765 | Green      | Music      | NULL      |
    | 32343 | El Said    | History    | 60000.00  |
    | 33456 | Gold       | Physics    | 87000.00  |
    | 45565 | Katz       | Comp. Sci. | 75000.00  |
    | 58583 | Califieri  | History    | 62000.00  |
    | 76543 | Singh      | Finance    | 80000.00  |
    | 76766 | Crick      | Biology    | 72000.00  |
    | 77987 | Kim        | Physics    | 98000.00  |
    | 83821 | Brandt     | Comp. Sci. | 92000.00  |
    | 88877 | Perry      | Finance    | 125000.00 |
    | 88878 | Perry      | Finance    | 125000.00 |
    | 98345 | Kim        | Elec. Eng. | 80000.00  |
    +-------+------------+------------+-----------+
    17 rows in set (0.04 sec)
    

    使用JDBC执行上述的查询语句,将结果集中的查询结果以表格的形式打印出来。

    思路

    • 通过结果集的元数据可以知道结果集中的列数,和列名.
    • 然后遍历结果集,分别统计每一列中的最大字符数。
    • 然后通过System.out.printf()方法进行格式化输出。

    实现

    package tools;
    
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Iterator;
    
    /**
     * 结果集打印机.将结果集中的数据打印成表格.
     */
    public class ResultSetPrinter {
        public static void printResultSet(ResultSet rs) throws SQLException {
            ResultSetMetaData resultSetMetaData = rs.getMetaData();
            // 获取列数
            int ColumnCount = resultSetMetaData.getColumnCount();
            // 保存当前列最大长度的数组
            int[] columnMaxLengths = new int[ColumnCount];
            // 缓存结果集,结果集可能有序,所以用ArrayList保存变得打乱顺序.
            ArrayList<String[]> results = new ArrayList<>();
            // 按行遍历
            while (rs.next()) {
                // 保存当前行所有列
                String[] columnStr = new String[ColumnCount];
                // 获取属性值.
                for (int i = 0; i < ColumnCount; i++) {
                    // 获取一列
                    columnStr[i] = rs.getString(i + 1);
                    // 计算当前列的最大长度
                    columnMaxLengths[i] = Math.max(columnMaxLengths[i], (columnStr[i] == null) ? 0 : columnStr[i].length());
                }
                // 缓存这一行.
                results.add(columnStr);
            }
            printSeparator(columnMaxLengths);
            printColumnName(resultSetMetaData, columnMaxLengths);
            printSeparator(columnMaxLengths);
            // 遍历集合输出结果
            Iterator<String[]> iterator = results.iterator();
            String[] columnStr;
            while (iterator.hasNext()) {
                columnStr = iterator.next();
                for (int i = 0; i < ColumnCount; i++) {
                    // System.out.printf("|%" + (columnMaxLengths[i] + 1) + "s", columnStr[i]);
                    System.out.printf("|%" + columnMaxLengths[i] + "s", columnStr[i]);
                }
                System.out.println("|");
            }
            printSeparator(columnMaxLengths);
        }
    
        /**
         * 输出列名.
         *
         * @param resultSetMetaData 结果集的元数据对象.
         * @param columnMaxLengths  每一列最大长度的字符串的长度.
         * @throws SQLException
         */
        private static void printColumnName(ResultSetMetaData resultSetMetaData, int[] columnMaxLengths) throws SQLException {
            int columnCount = resultSetMetaData.getColumnCount();
            for (int i = 0; i < columnCount; i++) {
                // System.out.printf("|%" + (columnMaxLengths[i] + 1) + "s", resultSetMetaData.getColumnName(i + 1));
                System.out.printf("|%" + columnMaxLengths[i] + "s", resultSetMetaData.getColumnName(i + 1));
            }
            System.out.println("|");
        }
    
        /**
         * 输出分隔符.
         *
         * @param columnMaxLengths 保存结果集中每一列的最长的字符串的长度.
         */
        private static void printSeparator(int[] columnMaxLengths) {
            for (int i = 0; i < columnMaxLengths.length; i++) {
                System.out.print("+");
                // for (int j = 0; j < columnMaxLengths[i] + 1; j++) {
                for (int j = 0; j < columnMaxLengths[i]; j++) {
                    System.out.print("-");
                }
            }
            System.out.println("+");
        }
    
    }
    
    

    测试

    package tools;
    import java.sql.*;
    
    public class Test {
        private static String driver = "com.mysql.cj.jdbc.Driver";
        private static String URL = "jdbc:mysql://127.0.0.1:3306/university?serverTimezone=UTC";
        private static String user = "root";
        private static String password = "root";
    
        /**
         * JDBC测试.
         */
        private static void JDBCexample() {
            // 1.加载数据库驱动
            try {
    
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            testStatement();
        }
    
        /**
         * 测试Statement的用法.
         */
        private static void testStatement() {
            try (// 2.打开数据库连接
                 Connection conn = DriverManager.getConnection(URL, user, password);
                 // 3.创建语句
                 Statement stmt = conn.createStatement()) {
                // 模拟SQL注入
                testSqlInjecton(stmt);
    
            } catch (SQLException sqle) {
                System.out.println("SQLException : " + sqle);
            }
        }
    
        /**
         * 模拟SQL注入.
         *
         * @param stmt Statement对象.
         * @throws SQLException
         */
        private static void testSqlInjecton(Statement stmt) throws SQLException {
            String name = "X' or 'Y' = 'Y";
            String sql = "select * from instructor where name = '" + name + "'";
            ResultSet rs = stmt.executeQuery(sql);
            ResultSetPrinter.printResultSet(rs);
        }
    
        public static void main(String[] args) {
            JDBCexample();
        }
    }
    

    运行结果

    +-----+----------+----------+---------+
    |   ID|      name| dept_name|   salary|
    +-----+----------+----------+---------+
    |10101|Srinivasan|Comp. Sci.| 65000.00|
    |12121|        Wu|   Finance| 90000.00|
    |15151|    Mozart|     Music| 40000.00|
    |22222|  Einstein|   Physics| 95000.00|
    |25566|     Brown|   Biology|100000.00|
    |30765|     Green|     Music|     null|
    |32343|   El Said|   History| 60000.00|
    |33456|      Gold|   Physics| 87000.00|
    |45565|      Katz|Comp. Sci.| 75000.00|
    |58583| Califieri|   History| 62000.00|
    |76543|     Singh|   Finance| 80000.00|
    |76766|     Crick|   Biology| 72000.00|
    |77987|       Kim|   Physics| 98000.00|
    |83821|    Brandt|Comp. Sci.| 92000.00|
    |88877|     Perry|   Finance|125000.00|
    |88878|     Perry|   Finance|125000.00|
    |98345|       Kim|Elec. Eng.| 80000.00|
    +-----+----------+----------+---------+
    

    原文链接: java打印表格 将ResultSet中的数据打印成表格

    展开全文
  • 打印table表格数据

    2016-10-25 14:56:03
    资源包含打印页面及两个所需的js文件,轻量级代码即可实现打印表格数据,方便快捷用于自学和嵌套自己页面中
  • WPS表格分栏打印电子表格您也行.docx
  • 打印坐标表格

    2012-09-19 08:30:37
    自己打印坐标纸,有几种格式,根据自己的需要打印.希望对大家有用.
  • 如何打印excel表格.docx

    2021-09-27 07:05:36
    如何打印excel表格.docx
  • Java中打印Excel表格

    热门讨论 2010-03-24 11:10:00
    打印Excel表格一直是Java技术中难解的问题,在这里我写了一个打印Excel表格的实例,比较实用。与大家共享一下,有什么不对的地方还希望各位多多指教
  • 易语言高级表格打印模块源码,高级表格打印模块,显示列,打印高级表格,读打印配置项,保存打印字段信息,读打印字段,搜索子窗口,插入月份,高级表格打印,高级表格导出EXCEL,gettext,查找窗口,getcd,读取员工,初始考勤年报...
  • 最近给客户做打印的时候,客户提出打印时不要打印该页面的头,只是打印表格里面的内容,因为头部有背景和打印按钮,而
  • WPF打印Datagrid表格

    千次阅读 2018-05-05 19:54:48
    这里主要以类似图片格式方式打印,可以打印简单的DataGrid表格。方法如下:将表格加入到画布中,然后调用打印机,将画布直接打印出来,具体代码如下:单独用一个窗口放画布,将表格传进来,因为我的数据是绑定的...

    这里主要以类似图片格式方式打印,可以打印简单的DataGrid表格。方法如下:

    将表格加入到画布中,然后调用打印机,将画布直接打印出来,具体代码如下:

    单独用一个窗口放画布,将表格传进来,因为我的数据是绑定的DataTable上的数据,故给它单独加个表头并绑定(说白了就是换表头)。

    xmal:

    <Window x:Class="MyControlLibrarys.PrintDataWind"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="打印窗口" Height="600" Width="850">
        <Grid>
            <Canvas x:Name="printArea">
                <DataGrid Name="dgData" AutoGenerateColumns="False" CanUserAddRows="False" GridLinesVisibility="All" Margin="20">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="序号" Width="70" Binding="{Binding Path=id, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                        <DataGridTextColumn Header="测试步骤" Width="140" Binding="{Binding Path=step, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                        <DataGridTextColumn Header="测试内容" Width="140" Binding="{Binding Path=content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                        <DataGridTextColumn Header="标准" Width="120" Binding="{Binding Path=standard, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                        <DataGridTextColumn Header="实测" Width="120" Binding="{Binding Path=actual, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                        <DataGridTextColumn Header="结论" Width="120" Binding="{Binding Path=conclusion, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    </DataGrid.Columns>
                </DataGrid>
            </Canvas>
        </Grid>
    </Window>
    

    后台代码:

    /// <summary>
        /// PrintDataWind.xaml 的交互逻辑
        /// </summary>
        public partial class PrintDataWind : Window
        {
            public PrintDataWind(System.Data.DataTable dt)
            {
                InitializeComponent();
                this.dgData.ItemsSource = dt.DefaultView;
            }
    
            public void print()
            {
                PrintDialog dialog = new PrintDialog();
                if (dialog.ShowDialog() == true)
                {
                    dialog.PrintVisual(printArea, "Print Data");
                }
            }
        }

    调用代码:

    部分xmal(目的为了保持一致):

    <DataGrid Grid.Row="1"  ColumnHeaderStyle ="{DynamicResource DataGridColumnHeaderStyle}" Grid.Column="0" Name="dgData" AutoGenerateColumns="False" CanUserAddRows="False" GridLinesVisibility="All">
                <DataGrid.Columns>
                    <DataGridTextColumn Width="0.8*" Header="序号" ElementStyle="{StaticResource contentCenterStyle}" Binding="{Binding Path=OrderId, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    <!--DataGridTextColumn Header="序号" Width="*" Binding="{Binding Path=id, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></-->
                    <DataGridTextColumn Header="测试步骤" Width="2*" Binding="{Binding Path=step, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    <DataGridTextColumn Header="测试内容" Width="2*" Binding="{Binding Path=content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    <DataGridTextColumn Header="标准" Width="2*" Binding="{Binding Path=standard, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    <DataGridTextColumn Header="实测" Width="2*" Binding="{Binding Path=actual, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
                    <!--DataGridTextColumn Header="结论" Width="2*" Binding="{Binding Path=conclusion, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Foreground="{Binding Path=conclusion,ConverterParameter=通过, Converter={StaticResource DataColorConverterStyle}}"></-->
                    <DataGridTemplateColumn Width="2*" Header="结论">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Path=conclusion,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" 
                                           Foreground="{Binding Path=conclusion,Converter={StaticResource DataColorConverterStyle}}"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>

    后台调用代码:

    /// <summary>
            /// 打印数据
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void PrintData_Click(object sender, RoutedEventArgs e)
            {
                PrintDataWind pdw = new PrintDataWind(_dt);
                pdw.print();
            }
    这样就可以打印了,方法虽笨,但管用,该方法还可打印图片等。
    展开全文
  • 易语言高级表格打印模块(有)源码,高级表格打印模块(有),显示列,打印高级表格,读打印配置项,保存打印字段信息,读打印字段,搜索子窗口,插入月份,高级表格打印,高级表格导出EXCEL,gettext,查找窗口,getcd,读取员工,...
  • 打印图片及表格

    2019-01-01 10:53:51
    打印图片及表格
  • 打印 发票 表格实现

    2019-04-19 14:48:04
    基于angular的打印 发票 table html
  • asp.net 打印Excel表格

    2009-07-15 09:12:12
    asp.net 打印Excel表格,适用于Gridview,datalist
  • 网页打印表格

    2019-06-05 13:33:17
    如标题所说就是调用网页打印器来打印表格,先说以下具体实现步骤: 将数据查询出来(因为网页的打印器是打印的当前网页的内容,所以需要新建一个页面专门用来打印数据用) 查询出来的数据保存到请求中,在把请求...

    如标题所说就是调用网页打印器来打印表格,先说以下具体实现步骤:

    1. 将数据查询出来(因为网页的打印器是打印的当前网页的内容,所以需要新建一个页面专门用来打印数据用)

    2. 查询出来的数据保存到请求中,在把请求请求转发给打印的jsp页面,jsp通过el表达式获取传过来的值,循环打印。

    3. Js调用网页的打印器,完成。
      代码部分:
      Servlet部分:将查询出来的数据用集合来接收,再把集合保存请求中,再把请求转发到需要打印的jsp页面
      在这里插入图片描述
      Jsp部分:用c:forEach遍历集合的值

      1.         <caption>消费报表</caption>  
        
      2.         <thead>  
        
      3.             <tr>  
        
      4.                 <th>房台类别</th>  
        
      5.                 <th>房台号</th>  
        
      6.                 <th>项目名称</th>  
        
      7.                 <th>单价</th>  
        
      8.                 <th>数量</th>  
        
      9.                <th>折扣</th>  
        
      10.                <th>消费金额</th>  
        
      11.                <th>单号</th>  
        
      12.            </tr>  
        
      13.           <c:forEach items="${lists}" var="user">  
        
      14.         <tr>  
        
      15.             <th>${user.RTableCategory}</th>  
        
      16.                <th>${user.RTableCode}</th>  
        
      17.                <th>${user.itemName}</th>  
        
      18.                <th>${user.price}</th>  
        
      19.                <th>${user.count}</th>  
        
      20.                <th>${user.discount}</th>  
        
      21.                <th>${user.jinnt}</th>  
        
      22.                <th>${user.oneMark}</th>  
        
      23.         </tr>  
        
      24.     </c:forEach>  
        
      25.        </thead>  
        

    Js部分:调用浏览器打印器

    1.	$(function(){  
    2.	      window.print();//调用浏览器的打印功能  
    3.	});  
    

    效果图:样式没怎么调,所以有点不太好看。

    在这里插入图片描述

    展开全文
  • 打印DBGrid表格里的数据
  • easyui datagrid表格打印,支持formatter格式化数据的打印,还原的最初datagrid 的表格数据
  • Qt表格分页打印

    2017-10-19 19:12:03
    Qt表格分页打印
  • 磅房表格打印

    2015-02-14 18:32:12
    打印....帮放,表格。网络监控,硬盘录像机安装文件。
  • 最近很多用户咨询小编,如何将超级表格中的表格进行打印?首先,我们要先将超级表格的数据导出到Excel表格中。相关阅读:超级表格如何将数据导出?小提示:因为超级表格的数据是有自己的格式的,所以导出的数据想要...

    最近很多用户咨询小编,如何将超级表格中的表格进行打印?

    首先,我们要先将超级表格的数据导出到Excel表格中。

    相关阅读:超级表格如何将数据导出?

    小提示:因为超级表格的数据是有自己的格式的,所以导出的数据想要计算使用的小伙伴,建议大家先手动转换一下表格的单元格格式。这样可以有效避免单元格数据报错的问题哦~

    小编之前已经给大家整理了许多的制表技巧,学会制表之后,小编给大家整理了一下Excel表格的打印技巧。



    打印标题行  


    打印多页标题行的表格,可是每次打印出来却发现只有第一页有标题行?

    步骤:①点击“页面布局”选项

             ②找到“页面设置”-“打印标题”

             ③在“打印标题中可以选择顶端标题行和左端标题行

             ④选择需要打印的标题区域后,点击确定


    打印标题行3.gif



    一页纸打印


    有时候数据不多,可是刚刚好有一行数据超过一页纸。这时我们应该如何设置打印项呢?

    步骤:①点击“页面布局”选项

             ②找到“页面缩放”-“将整个工作表打印为一页”


    打印为一页.gif



    打印居中显示


    中国人喜欢对称的美感。那么打印的时候该如何设置将表格居中打呢?

    步骤:

    ①点击“打印预览”选项

    ②找到“页面设置”-“页边距”

    ③最下方居中方式选择“水平”&“垂直”


    居中打印.gif



    打印不显示错误值


    表格中难免会出现错误值,如何在打印的时候不显示错误数值呢?

    步骤:①点击"文件”-"页面设置”

               ②选择“工作表”-设置将错误单元格打印为“空白”


    错误值1.gif


    若有其他疑问,欢迎直接在下方评论留言~O(∩_∩)O~~我们会一一回答

    展开全文
  • jquery打印HTML表格自动分页

    热门讨论 2012-05-14 20:34:27
    采用JQuery实现的打印HTML表格自动按多少行分页,打印时分页
  • 表格打印源码

    2007-09-07 11:42:45
    表格打印源码(人气_3130)-打印处理类-VC_C++
  • 易语言表格分页模板打印源码,表格分页模板打印
  • C# GDI+打印复杂表格

    热门讨论 2011-07-17 23:13:40
    C# GDI+打印复杂表格 介绍请看http://www.likefeng.com/post/369.html
  • 最近有个需求,是需要用WinForm打印表格,打印机是针式打印机,纸张则为发票联式的纸张(一联大小大概20cm*10cm),本文列举了两个打印方法,一个是用WinForm自带的打印类,另一个则是将表格输出到Excel后再打印
  • Java 控制台 打印表格 可前往http://blog.csdn.net/j506825719/article/details/78996659查看效果图后再决定是否需要下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,274
精华内容 51,309
关键字:

怎么打印需要的表格