using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using gregn6Lib; using SQLHelper; using DBUtility; using System.Threading; using System.IO; namespace WarM { public partial class Kf_ICInventory_BarCode : Form { public Kf_ICInventory_BarCode() { InitializeComponent(); } public frmBillQueryCondition_New frmCondition; public string ViewName = "h_v_KF_ICInventoryList_WMS"; public string ModCaption = "条码库存查询"; public const string ModName = "3302"; public const string ModRightName = "Gy_BarCodeBillList"; //public const string ModRightNameEdit = ModRightName + "_Edit"; //public const string ModRightNameCheck = ModRightName + "_Check"; //public const string ModRightNameClose = ModRightName + "_Close"; public const string ModRightNameDelete = ModRightName + "_Delete"; public const string ModRightNamePrint = ModRightName + "_Print"; //DAL.ClsGy_ICBomBill oBill = new DAL.ClsGy_ICBomBill(); //public Gy_ICBomBill oFrm; public string sDlgWhere = ""; //外窗体递入 public int selectRow = 0; Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); // private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain,this.Name); grdMain.ReadOnly = false; } // private void Display() { ClsCN SubCn = new ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; //过滤条件 if (frmCondition.SqlStr.Trim().Length == 0) { sSql = "Select * from " + ViewName + " Where 1=1 " + sWhere + sDlgWhere + " order by 物料代码 "; } else { sSql = frmCondition.SqlStr + sWhere + sDlgWhere + " order by 物料代码 "; } // DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } // grdMain.DataSource = DSet.Tables[0].DefaultView; //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); // //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s,FrCol); //画线 GraphLine(); Total(); // } // private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; initGrid(); //Sub_FastQuery(); } private void tc_Click(object sender, EventArgs e) { this.Close(); } private void sx_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void dj_Click(object sender, EventArgs e) { Sub_ShowBill(); } //显示单据 private void Sub_ShowBill() { //Int64 lngBillKey = 0; //if (grdMain.CurrentRow == null) // return; //lngBillKey =DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); //if (lngBillKey == 0) // return; //DAL.ClsGy_ICBomBill oBill = new DAL.ClsGy_ICBomBill(); //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //{ // oFrm = new Gy_ICBomBill(); // oFrm.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_View; // oFrm.BillOld = oBill; // oFrm.ShowDialog(); // if (oFrm.BillChange) // { // if (MessageBox.Show("单据列表已经发生变化,是否刷新", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) // { // timer1.Enabled = true; // } // } //} //else //{ // MessageBox.Show("单据未找到", "提示"); //} //oBill = null; } // private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } // private void Kf_ICInventory_BarCode_Load(object sender, EventArgs e) { // frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; lblCaption.Text = ModCaption; initGrid(); //初始化快速过滤 //dtpHBDate.Checked = false; //dtpHEDate.Checked = false; cmbHStatus.SelectedIndex = 0; } private void grdMain_DblClick(object sender, EventArgs e) { Sub_ShowBill(); } private void cx_Click(object sender, EventArgs e) { frmCondition = new frmBillQueryCondition_New(); SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { Display(); //Sub_FastQuery(); } } public void SetCondition(frmBillQueryCondition_New frmCondition, string ViewName, string Name) { frmCondition.Tag = ""; frmCondition.ViewName = ViewName; frmCondition.ModName = Name; } private void xz_Click(object sender, EventArgs e) { // //oFrm = new Gy_ICBomBill(); //oFrm.ShowDialog(); } private void sc_Click(object sender, EventArgs e) { Sub_DeleteBill(); } //删除 private void Sub_DeleteBill() { // //编辑权限 // if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, true,DBUtility.ClsPub.CurUserName)) // { // return; // } // // // Int64 lngBillKey = 0; // if (grdMain.CurrentRow == null) // return; // lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); // if (lngBillKey == 0) // return; // DAL.ClsGy_ICBomBill oBill = new DAL.ClsGy_ICBomBill(); // if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) // { // if (MessageBox.Show("确定要删除当前单据?", "提示", MessageBoxButtons.OKCancel)==DialogResult.OK) // { // if (oBill.omodel.HChecker != "") // { // MessageBox.Show("单据已经审核,不能删除!", "提示"); // return; // } // if (!oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) // { // MessageBox.Show(DBUtility.ClsPub.sExeReturnInfo, "提示"); // return; // } // else // { // Display(); // } // } // } // else // { // MessageBox.Show("单据未找到", "提示"); // } } private void timer2_Tick(object sender, EventArgs e) { timer2.Enabled = false; if (sDlgWhere == "") { //frmCondition = new frmBillQueryCondition_New(); //SetCondition(frmCondition, ViewName, this.Name); //frmCondition.ShowDialog(); //if (frmCondition.Tag.ToString() == "OK") //{ // timer1.Enabled = true; //} //Sub_FastQuery(); } else { timer1.Enabled = true; } } private void bclk_Click(object sender, EventArgs e) { //保存列宽 DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } // private void GraphLine() { //int MainIDCol = Fun_GetCol("hmainid"); //int SubIDCol = Fun_GetCol("hsubid"); //string s = frmCondition.cmbHComplete.Text; //long n=0; //DBUtility.Xt_BaseBillFun.GraphLine(grdMain, MainIDCol, SubIDCol, s,ref n); ////显示 //lbldj.Text = "查询出 " + n.ToString() + " 张单据"; //lbljl.Text = "共有 " + grdMain.RowCount.ToString() + " 条记录"; } //审核 private void sh_Click(object sender, EventArgs e) { ////this.Sub_CheckBill(); //if (!ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} //if (grdMain.CurrentRow == null) // return; //DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); //if (MessageBox.Show("确定要反作废所选条码?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) //{ // return; //} //for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) //{ // if (DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("HMaterID")].Value) != 0) // { // if (!oBar.UnCancelltion(DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value))) // { // MessageBox.Show("反作废失败!", "提示"); // return; // } // } //} //MessageBox.Show("反作废成功!", "提示"); //Sub_FastQuery(); } //审核单据 private void Sub_CheckBill() { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true,DBUtility.ClsPub.CurUserName)) //{ // return; //} // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsGy_ICBomBill oBill = new DAL.ClsGy_ICBomBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { MessageBox.Show("单据已审核!不能再次审核", "提示"); return; } } else { MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //审核 if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("审核成功!", "提示"); return; } else { MessageBox.Show("审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //反审单据 private void Sub_AbandonCheck() { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true,DBUtility.ClsPub.CurUserName)) //{ // return; //} // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsGy_ICBomBill oBill = new DAL.ClsGy_ICBomBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() == "") { MessageBox.Show("单据未审核!不需要反审核!", "提示"); return; } } else { MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //反审核 if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("反审核成功!", "提示"); return; } else { MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //作废 private void qsh_Click(object sender, EventArgs e) { ////Sub_AbandonCheck(); //if (!ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} //if (grdMain.CurrentRow == null) // return; //DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); //if (MessageBox.Show("确定要作废所选条码?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) //{ // return; //} //for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) //{ // if (DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("HMaterID")].Value) != 0) // { // if (!oBar.Cancelltion(DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value))) // { // MessageBox.Show("作废失败!", "提示"); // return; // } // } //} //MessageBox.Show("作废成功!", "提示"); //Sub_FastQuery(); } private void GraphicsGrid() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } #region //打印设置 GridppReport Report; //预览 private void yl_Click(object sender, EventArgs e) { for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { if (DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("打印次数")].Value) > 0) { //判断权限 if (!ClsPub.Security_Log(ModRightNamePrint, 1, false, DBUtility.ClsPub.CurUserName)) { MessageBox.Show("所选条码已经打印,您没有权限,不能重复打印!"); return; } } } //选择打印模板 string sErr = ""; BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { selectRow = i; Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(false); //oBar.Set_PrintQty(DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value)); // } } } private void Sub_SetReport(string sOpenTmp) { //判断行数 // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } //填入单据表头信息 private void ReportBeforePostRecord()//your report?kao { Report.FieldByName("条码编号").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("条码编号")].Value); Report.FieldByName("数量").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("数量")].Value); Report.FieldByName("单位").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("计量单位")].Value); Report.FieldByName("入库日期").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("日期")].Value); //成品 Report.FieldByName("客户名称").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("往来单位")].Value); Report.FieldByName("产品代码").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("物料代码")].Value); Report.FieldByName("产品图号").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("规格型号")].Value); Report.FieldByName("产品名称").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("物料名称")].Value); Report.FieldByName("包装方式").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("包装方式")].Value); Report.FieldByName("生产计划").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("源单单号")].Value); Report.FieldByName("成品批次").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("批号")].Value); Report.FieldByName("生产车间").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("生产车间")].Value); Report.FieldByName("生产周期").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("生产周期")].Value); //原料 Report.FieldByName("供应商名称").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("往来单位")].Value); Report.FieldByName("物料代码").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("物料代码")].Value); Report.FieldByName("牌号").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("物料名称")].Value); Report.FieldByName("型号").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("规格型号")].Value); Report.FieldByName("炉号").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("炉号")].Value); Report.FieldByName("物料批次").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("批号")].Value); if (DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow].Cells[Fun_GetCol("尾数")].Value) == "尾数") { Report.FieldByName("尾数").AsString = "/////////////////////////"; } else { Report.FieldByName("尾数").AsString = ""; } } private void ReportFetchRecordByDataTable() { BLL.Utility.FillRecordToReport(Report, grdMain, grdPrint, Fun_GetCol("条码编号")); } #endregion // private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } //合计 new private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.Total(); } } //合计 new private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { Total(); } //合计 new private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { Total(); } private void dy_Click(object sender, EventArgs e) { //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { selectRow = i; Sub_SetReport(oFrm.sOpenTmp); Report.Print(false); oBar.Set_PrintQty(DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value)); } } } private void dy2_Click(object sender, EventArgs e) { for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { if (DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("打印次数")].Value) > 0) { //判断权限 if (!ClsPub.Security_Log(ModRightNamePrint, 1, false, DBUtility.ClsPub.CurUserName)) { MessageBox.Show("所选条码已经打印,您没有权限,不能重复打印!"); return; } } } // //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { selectRow = i; Sub_SetReport(oFrm.sOpenTmp); Report.Print(false); oBar.Set_PrintQty(DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value)); // //Thread.Sleep(300); } } } private void grdMain_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { int sHQtyCol = Fun_GetCol("数量"); int i = grdMain.CurrentCell.ColumnIndex; if (i != sHQtyCol) { e.Cancel = true; } } //快速过滤 private void Sub_FastQuery() { string sFastSQL = ""; //物料 //if (cmbHStatus.Text.Trim() == "正常") //{ // sFastSQL = sFastSQL + " and hstopflag=0 "; //} //else //{ // sFastSQL = sFastSQL + " and hstopflag=1 "; //} //物料 if (txtHMater.Text.Trim() != "") { sFastSQL = sFastSQL + " and (物料代码 like '%" + txtHMater.Text.Trim() + "%' or 物料名称 like '%" + txtHMater.Text.Trim() + "%' or 规格型号 like '%" + txtHMater.Text.Trim() + "%') "; } //批号 if (txtHBatchNo.Text.Trim() != "") { sFastSQL = sFastSQL + " and 批号 like '%" + txtHBatchNo.Text + "%'"; } //条码 if (txtHBarcode.Text.Trim() != "") { sFastSQL = sFastSQL + " and 条码编号 like '%" + txtHBarcode.Text + "%'"; } //仓库 if (txtHWHName.Text.Trim() != "") { sFastSQL = sFastSQL + " and 仓库名称 like '%" + txtHWHName.Text + "%'"; } //仓位 if (txtHSPName.Text.Trim() != "") { sFastSQL = sFastSQL + " and 仓位名称 like '%" + txtHSPName.Text + "%'"; } if (sFastSQL.Trim() == "") { MessageBox.Show("没有输入条件!"); return; } sDlgWhere = sFastSQL; Display(); sDlgWhere = ""; } private void btnOK_Click(object sender, EventArgs e) { Sub_FastQuery(); } private void yc_Click(object sender, EventArgs e) { //BLL.ClsPub_BLL.DataGridViewToExcel2(grdMain, this.Text); DataGridViewToExcel2(grdMain, this.Text, this.Text); } /// /// 网格 导出EXCEL 网格,文件名,标题名 /// public static void DataGridViewToExcel2(DataGridView grdMain, string sText, string sBTText) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl文件(*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "数据视图导出EXCEL文件"; saveFileDialog.FileName = sText; //saveFileDialog.ShowDialog(); if (saveFileDialog.ShowDialog() == DialogResult.OK) { Stream myStream; myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); string str = ""; DateTime start = DateTime.Now; try { if (sBTText != "") { sw.WriteLine(sBTText); } //写标题 bool sFirstCol = true; for (int i = 0; i < grdMain.ColumnCount; i++) { if (i > 0 && grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { str += "\t"; } if (grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; str += grdMain.Columns[i].HeaderText; } } str = str.Replace("\n", ""); sw.WriteLine(str); //写内容 for (int j = 0; j < grdMain.Rows.Count; j++) { string tempStr = ""; sFirstCol = true; for (int k = 0; k < grdMain.Columns.Count; k++) { if (k > 0 && grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { tempStr += "\t"; } if (grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; if (grdMain.Rows[j].Cells[k].Value == null) { tempStr += string.Empty; } else { tempStr += grdMain.Rows[j].Cells[k].Value.ToString(); } } } tempStr = tempStr.Replace("\n", ""); sw.WriteLine(tempStr); } sw.Close(); myStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { sw.Close(); myStream.Close(); } MessageBox.Show("将此工作表导出为excel共耗时:" + DateTime.Now.Subtract(start).TotalMilliseconds.ToString() + "毫秒"); } } } }