winfrom 导出EXCEL的问题 现在有2个datatable,格式数据都不一样,现在需要导出到一个Excel表中的一个sheet中 大家有没有什么比较简便,高效的方法?导出的Excel如下格式: 姓名 性别 张三 男 成绩1 成绩2 成绩3 10 20 30 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用com控件,循环datatable依次导出。 //当时自己写的一个进销存输出EXCEL的代码 excel.Cells[na + 3, 1]是EXCEL 输出的行,列 //要是需要换行的话可以通过循环的na 来控制或者 两个以上的类似这样的循环 //我这个当时业务复杂了些 你参考下吧 一般有两个for循环 和一个格式输出就可以了我这里判断条件比较//多 呵呵#region 写入 for (int na = 0; na < RCount; na++) { for (int nb = 1; nb < CCount + 1; nb++) { string str = DS.Tables[0].Rows[na]["GoodsPutInTime"].ToString(); if (str == "") { str = DS.Tables[0].Rows[na]["GoodsComeOutTiem"].ToString(); } excel.Cells[na + 3, 1] = str;//日期 excel.Cells[na + 3, 2] = DS.Tables[0].Rows[na]["GoodsName"].ToString(); //摘要 if (DS.Tables[0].Rows[na]["GoodsPutInAmount"].ToString() != "0") { excel.Cells[na + 3, 3] = DS.Tables[0].Rows[na]["GoodsPutInAmount"].ToString(); //入库数量 excel.Cells[na + 3, 4] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价 excel.Cells[na + 3, 5] = DS.Tables[0].Rows[na]["GooodMoney"].ToString(); //入库金额 } if (DS.Tables[0].Rows[na]["GoodsComeOutAmount"].ToString() != "0") { excel.Cells[na + 3, 6] = DS.Tables[0].Rows[na]["GoodsComeOutAmount"].ToString(); //入库数量 excel.Cells[na + 3, 7] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价 excel.Cells[na + 3, 8] = DS.Tables[0].Rows[na]["GooodMoney"].ToString(); //入库金额 } if (DS.Tables[0].Rows[na]["GoodsAmount"].ToString() != "0") { excel.Cells[na + 3, 9] = DS.Tables[0].Rows[na]["GoodsAmount"].ToString(); //入库数量 excel.Cells[na + 3, 10] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价 excel.Cells[na + 3, 11] = DS.Tables[0].Rows[na]["TotalPrices"].ToString(); //入库金额 } } } #endregion 2个表中的数据有没有关联不重要,我要的是如上面的那种格式 第一个表的数据在sheet1中的上面,下面就跟着显示第2个表的数据,现在主要是怎么把2个表的数据放在一个sheet中. for循环取出 List<T>的值 winform实现DataGridView多行列头,如何实现?能否再实现多列头的打印? c#写的桌面程序使用了webbrowser控件,运行一段时间,很占内存,最后提示out of memory 如何动态调整缩略图的质量 浅析C#中DataTable数据写入Excel的3种方式 bin\debug中的数据库和根目录上的数据库有什么区别? 打开窗体的同时,执行某个空间的单击事件 请指教! 请问怎样把字符串转换为Font类型? 我想把当前日期转换为这样20040916可以吗??? 急!Word2003稿纸加载变字号问题 让你猜五次.你会选择哪组方案
//当时自己写的一个进销存输出EXCEL的代码 excel.Cells[na + 3, 1]是EXCEL 输出的行,列
//要是需要换行的话可以通过循环的na 来控制或者 两个以上的类似这样的循环
//我这个当时业务复杂了些 你参考下吧 一般有两个for循环 和一个格式输出就可以了我这里判断条件比较
//多 呵呵
#region 写入
for (int na = 0; na < RCount; na++)
{
for (int nb = 1; nb < CCount + 1; nb++)
{
string str = DS.Tables[0].Rows[na]["GoodsPutInTime"].ToString();
if (str == "")
{
str = DS.Tables[0].Rows[na]["GoodsComeOutTiem"].ToString();
}
excel.Cells[na + 3, 1] = str;//日期
excel.Cells[na + 3, 2] = DS.Tables[0].Rows[na]["GoodsName"].ToString(); //摘要
if (DS.Tables[0].Rows[na]["GoodsPutInAmount"].ToString() != "0")
{
excel.Cells[na + 3, 3] = DS.Tables[0].Rows[na]["GoodsPutInAmount"].ToString(); //入库数量
excel.Cells[na + 3, 4] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价
excel.Cells[na + 3, 5] = DS.Tables[0].Rows[na]["GooodMoney"].ToString(); //入库金额
}
if (DS.Tables[0].Rows[na]["GoodsComeOutAmount"].ToString() != "0")
{
excel.Cells[na + 3, 6] = DS.Tables[0].Rows[na]["GoodsComeOutAmount"].ToString(); //入库数量
excel.Cells[na + 3, 7] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价
excel.Cells[na + 3, 8] = DS.Tables[0].Rows[na]["GooodMoney"].ToString(); //入库金额
}
if (DS.Tables[0].Rows[na]["GoodsAmount"].ToString() != "0")
{
excel.Cells[na + 3, 9] = DS.Tables[0].Rows[na]["GoodsAmount"].ToString(); //入库数量
excel.Cells[na + 3, 10] = DS.Tables[0].Rows[na]["UnitPrice"].ToString(); //单价
excel.Cells[na + 3, 11] = DS.Tables[0].Rows[na]["TotalPrices"].ToString(); //入库金额
}
}
}
#endregion