一个用户只允许连续回复3次。[散分]

没花鹿 2010-11-19 03:44:59
文章太长,分N次贴,只贴了3份,就被一个用户只允许连续回复3次。
把欠人家的最后一部分贴到这里了

/// <summary>
/// 将DataGridView中的数据导出到Excel中,并加载显示出来(无加载模板)
/// 只用于有合并项的导出,并且可根据前面的DataGridViewCheckBoxColumn是否选择进行导出
/// </summary>
/// <param name="caption">要显示的页头</param>
/// <param name="date">打印日期</param>
/// <param name="dgv">要进行导出的DataGridView</param>
/// <param name="MergeCount">合并的列数</param>
public void ExportToExcelNullMergeHasCheckBox(string caption, string date, DataGridView dgv, int MergeCount)
{
//DataGridView可见列数
int visiblecolumncount = 0;
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (dgv.Columns[i].Visible == true && (dgv.Columns[i] is DataGridViewTextBoxColumn))
{
visiblecolumncount++;
}
}

try
{
//当前操作列的索引
int currentcolumnindex = 1;
//当前操作行的索引
int currentrowindex = 4;
Microsoft.Office.Interop.Excel.ApplicationClass Mylxls = new Microsoft.Office.Interop.Excel.ApplicationClass();
Mylxls.Application.Workbooks.Add(true);
//Mylxls.Cells.Font.Size = 10.5; //设置默认字体大小
//设置标头
Mylxls.Caption = caption;
//显示表头
Mylxls.Cells[1, 1] = caption;
//显示时间
Mylxls.Cells[2, 1] = date;
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (dgv.Columns[i].Visible == true && (dgv.Columns[i] is DataGridViewTextBoxColumn)) //如果显示
{
Mylxls.Cells[3, currentcolumnindex] = dgv.Columns[i].HeaderText;
Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).Cells.Borders.LineStyle = 1; //设置边框
//Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).Font.Bold = true; //粗体
Mylxls.get_Range(Mylxls.Cells[3, currentcolumnindex], Mylxls.Cells[3, currentcolumnindex]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //居中显示
currentcolumnindex++;
}
}
Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, visiblecolumncount]).MergeCells = true; //合并单元格

Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).RowHeight = 30; //行高
//Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).Font.Name = "黑体";
//Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, 1]).Font.Size = 14; //字体大小
Mylxls.get_Range(Mylxls.Cells[1, 1], Mylxls.Cells[1, visiblecolumncount]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //居中显示
Mylxls.get_Range(Mylxls.Cells[2, 1], Mylxls.Cells[2, 2]).MergeCells = true; //合并
Mylxls.get_Range(Mylxls.Cells[2, 1], Mylxls.Cells[2, 2]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft; //左边显示
//Mylxls.get_Range(Mylxls.Cells[1, 2], Mylxls.Cells[1, 2]).ColumnWidth = 12; //列宽度

currentrowindex = 3;
for (int i = 0; i < dgv.Rows.Count; i++)
{
DataGridViewCheckBoxCell dgvc = new DataGridViewCheckBoxCell();
dgvc = (DataGridViewCheckBoxCell)dgv[0, i];
if (dgvc.FormattedValue.ToString() == "True")
{
currentcolumnindex = 1;

currentrowindex++;
for (int j = 0; j < dgv.Columns.Count; j++)
{
if (dgv.Columns[j].Visible == true && (dgv.Columns[j] is DataGridViewTextBoxColumn))
{
if (dgv[j, i].Value != null) //如果单元格内容不为空
{
Mylxls.Cells[currentrowindex, currentcolumnindex] = dgv[j, i].Value.ToString();
}
Mylxls.get_Range(Mylxls.Cells[1, currentcolumnindex], Mylxls.Cells[1, currentcolumnindex]).ColumnWidth = dgv.Columns[j].Width / 8;
Mylxls.get_Range(Mylxls.Cells[currentrowindex, currentcolumnindex], Mylxls.Cells[currentrowindex, currentcolumnindex]).Cells.Borders.LineStyle = 1; //设置边框
if (dgv.Rows[i].Cells[j].Value.ToString() == "")
{
for (int k = 0; k < MergeCount; k++)
{
Mylxls.get_Range(Mylxls.Cells[currentrowindex - 1, currentcolumnindex + k], Mylxls.Cells[currentrowindex, currentcolumnindex + k]).MergeCells = true;
}
//Mylxls.get_Range(Mylxls.Cells[i - 1, col + 2], Mylxls.Cells[rowIndex, col + 2]).MergeCells = true;
//Mylxls.get_Range(Mylxls.Cells[i - 1, col + 3], Mylxls.Cells[rowIndex, col + 3]).MergeCells = true;
}
currentcolumnindex++;
}
}
}
}
Mylxls.Visible = true;

}
catch
{
MessageBox.Show("信息导出失败,请确认你的机子上装有Microsoft Office Excel 2003!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{

}
}
}



原帖:http://topic.csdn.net/u/20101119/14/523d3268-e901-4874-8d84-289bfebd3821.html?seed=1913229661&r=69988981#r_69988981
...全文
331 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
phil999 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 resigner 的回复:]
引用 30 楼 sp1234 的回复:
自己注册一个马甲帐号吧,不倒分也有用处的。
高手,在任何领域里都是智力超群的!
[/Quote]

难怪我D老想搞上网实名制
没花鹿 2010-11-19
  • 打赏
  • 举报
回复
现在就整马甲去哈~~~
没花鹿 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 lcl_data 的回复:]
我终于发现 马甲的用处了
[/Quote]完。..刚结完帖...不好意思啊
没花鹿 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 sp1234 的回复:]
自己注册一个马甲帐号吧,不倒分也有用处的。
[/Quote]高手,在任何领域里都是智力超群的!
十八道胡同 2010-11-19
  • 打赏
  • 举报
回复
我终于发现 马甲的用处了
  • 打赏
  • 举报
回复
没有这么复杂吧
tanrenzong1986 2010-11-19
  • 打赏
  • 举报
回复
有点意思……
yhnujm##33 2010-11-19
  • 打赏
  • 举报
回复
先收藏了,到时需要时,再改一改!!
jonsnyu163 2010-11-19
  • 打赏
  • 举报
回复
太复杂了,楼主是用QB编写的吗?
  • 打赏
  • 举报
回复
自己注册一个马甲帐号吧,不倒分也有用处的。
tyhAaron 2010-11-19
  • 打赏
  • 举报
回复
回贴是个好习惯....
  • 打赏
  • 举报
回复
散分是个好习惯~·
flyingpolo01 2010-11-19
  • 打赏
  • 举报
回复
回帖是个好习惯.....hehe
fellowcheng 2010-11-19
  • 打赏
  • 举报
回复
jf,
浪子-无悔 2010-11-19
  • 打赏
  • 举报
回复
好人啊。。。
夜行空 2010-11-19
  • 打赏
  • 举报
回复
rice1999 2010-11-19
  • 打赏
  • 举报
回复
好人 喜欢顶这样的好人
HooverHuang 2010-11-19
  • 打赏
  • 举报
回复
好人不多了
一一一一 2010-11-19
  • 打赏
  • 举报
回复
LZ人这么好
rczjp 2010-11-19
  • 打赏
  • 举报
回复
好样的。。
加载更多回复(13)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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