C#根據當前DataGridView查詢數據導出Excel
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#根據當前DataGridView查詢數據導出Excel,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3073字,纯文字阅读大概需要5分钟。
内容图文
private void btnsuggestinfo_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("單號", typeof(string)); dt.Columns.Add("項次", typeof(decimal)); dt.Columns.Add("項次預約數量", typeof(decimal)); dt.Columns.Add("廠別", typeof(string)); dt.Columns.Add("料號", typeof(string)); dt.Columns.Add("倉碼", typeof(string)); dt.Columns.Add("BATCH", typeof(string)); dt.Columns.Add("棧板", typeof(string)); dt.Columns.Add("入庫日期", typeof(string));// add by chao dt.Columns.Add("儲位", typeof(string)); dt.Columns.Add("數量", typeof(decimal)); foreach (DataGridViewRow dgvr in dgvdnitem.Rows) { var docitem = dgvr.DataBoundItem as Wms_doc_item; var stockpallets = WmsEntity.Select<Wms_stock_pallet_v>(x => x.PLANT == docitem.PLANT_FROM & x.SLOC == docitem.SLOC_FROM & x.MATERIAL == docitem.MATERIAL &x.BATCH==docitem.BATCH& x.STOCK_FLAG == (int)Step_Type.None & x.LOCK_FLAG == 0 & x.WH == Basic.WorkingWH).OrderBy(x => x.IN_DATE); decimal? remain_qty = (decimal?)(docitem.REQUEST_QTY - docitem.OPERATION_QTY - docitem.RESERVED_QTY); foreach (var pallet in stockpallets) { DataRow dr = dt.NewRow(); dr.SetField<string>("單號", docitem.DOC_NO); dr.SetField<decimal>("項次", docitem.DOC_ITEM.Value); dr.SetField<decimal>("項次預約數量", docitem.REQUEST_QTY.Value); dr.SetField<string>("廠別", pallet.PLANT); dr.SetField<string>("料號", pallet.MATERIAL); dr.SetField<string>("倉碼", pallet.SLOC); dr.SetField<string>("BATCH", docitem.BATCH); dr.SetField<string>("棧板", pallet.PALLET_ID); dr.SetField<string>("入庫日期",pallet.IN_DATE.ToString());// add by chao dr.SetField<string>("儲位", pallet.BIN); dr.SetField<decimal>("數量", pallet.PANEL_QTY.Value); dt.Rows.Add(dr); remain_qty -= pallet.PANEL_QTY; if (remain_qty <= 0) { break; } } } DataTableToExcel(dt); } publicstaticvoid DataTableToExcel(DataTable table) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Execl files (*.xls)|*.xls"; dlg.FilterIndex = 0; dlg.RestoreDirectory = true; dlg.Title = "保存為Excel文件"; if (dlg.ShowDialog() == DialogResult.OK) { Stream myStream; myStream = dlg.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.Default); string columnTitle = ""; try { //寫入標題列 for (int i = 0; i < table.Columns.Count; i++) { if (columnTitle == "") { columnTitle = "\"" + table.Columns[i].ColumnName + "\""; } else { columnTitle += "\t" + "\"" + table.Columns[i].ColumnName + "\""; } } sw.WriteLine(columnTitle); //寫入內容列 for (int j = 0; j < table.Rows.Count; j++) { string columnValue = ""; for (int i = 0; i < table.Columns.Count; i++) { string cellValue = table.Rows[j][i] == DBNull.Value ? "" : table.Rows[j][i].ToString().Replace("\"", "‘"); if (columnValue == "") { columnValue = "\"" + cellValue + "\""; } else { columnValue += "\t" + "\"" + cellValue + "\""; } } sw.WriteLine(columnValue); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { sw.Close(); myStream.Close(); } } }
原文:http://www.cnblogs.com/kuangxiangnice/p/4398807.html
内容总结
以上是互联网集市为您收集整理的C#根據當前DataGridView查詢數據導出Excel全部内容,希望文章能够帮你解决C#根據當前DataGridView查詢數據導出Excel所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。