看最近很多人求新浪微博注册机,就写了个
前段时间无聊做了个,发上来给大家评论评论,界面有点难看
打印数据添加界面:
模板设计:
模板设计及修改主界面,可根据票据的扫描图片,1:1设计,设计好后即可打印
可用鼠标及键盘拖动标签
可设置各种文字样式,如对格子的金额小写,年月日等
标签的属性,及格式化等参数设置
划线工具,可划水平直线,垂直,右斜,左斜
可实现平推,及走孔等.
如有需要请联系
先用Excel将我们要生成的表格设计好:
然后另存为XML表格:
将生成的Book1.xml复制到项目中并打开:
找到Table节点,将节点的ss:ExpandedRowCount=”2” 删除掉
往下会看到我们刚输入的标题了吧
<Row>
<Cell ss:StyleID="s23"><Data ss:Type="String">姓名</Data></Cell>
<Cell ss:StyleID="s23"><Data ss:Type="String">成绩</Data></Cell>
</Row>
下面就是数据
<Cell ss:StyleID="s24"><Data ss:Type="String">张三</Data></Cell>
<Cell ss:StyleID="s24"><Data ss:Type="Number">80</Data></Cell>
将数据Row剪切并替换成 {0}
<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
{0}
</Table>
好了,可以开始写程序了。
DataTable dtData = new DataTable();
dtData的数据为 (姓名,成绩)
//这里就是刚在在XML里剪切掉的Row
string Row = @” <Row>
<Cell ss:StyleID=""s24""><Data ss:Type=""String"">{0}</Data></Cell>
<Cell ss:StyleID=""s24""><Data ss:Type=""Number"">{1}</Data></Cell>
</Row>”;
List<string> Rows = new List<string>();
foreach(DataRow dr in dtData.Rows)
{
Rows.Add(string.Format(Row,dr[“姓名”],dr[“成绩”]));}
StreamReader reader = new StreamReader(“XML名称.xml”);
StreamWriter writer = new StreamWriter(“新的Excel.xls”)
writer. Write(reader.ReadToEnd(),String.Join(“"r"n”,Row.ToArray()));
writer.Flush();
writer.Close();
reader.Close();
Oracle分页大家一般使用这种形式 SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM Articles ORDER BY PubTime DESC ) A ) B WHERE r <= PageUpperBound and r > PageLowerBound; 在很多时候,并不需要排序,而是要进行多表的联查计算等,这个时候数据多了就会显的很慢 发现慢就慢在Order By上 更改如下: SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM Articles ) A WHERE rownum <= PageUpperBound ORDER BY PubTime DESC //Order by 放这来 )B and r > PageLowerBound;