public OrderListViewItem(EgodeSimpleOrder o) { this.UseItemStyleForSubItems = true; _order = o; float money = 0; float.TryParse(o.Money, out money); this.Text = o.TaobaoId; this.SubItems.Add(o.Product); this.SubItems.Add(o.Count); this.SubItems.Add(string.Format("¥{0}", money > 0 ? money.ToString("0.00") : o.Money)); this.SubItems.Add(o.Express); this.SubItems.Add(o.BillNumber); this.SubItems.Add(o.Addr); this.SubItems.Add(o.Demand); if (o.Express.Equals("圆通")) { this.SubItems[4].ForeColor = Color.Purple; } if (!string.IsNullOrEmpty(_order.BillNumber)) { this.ImageIndex = 0; this.ForeColor = Color.Green; } else { this.ImageIndex = -1; } }
private void tsbtnExport_Click(object sender, EventArgs e) { try { foreach (OrderListViewItem item in lvwOrders.Items) { if (string.IsNullOrEmpty(item.Order.BillNumber)) { DialogResult dr = MessageBox.Show( this, "至少存在一个订单没有单号, 是否继续导出?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (DialogResult.No == dr) { return; } } } string initialDirectory = Path.GetDirectoryName(_loadedFilename); //string filename = string.Format("{0}-r.xls", Path.GetFileNameWithoutExtension(_loadedFilename)); string filename = string.Format("{0}.csv", Path.GetFileNameWithoutExtension(_loadedFilename)); SaveFileDialog sfd = new SaveFileDialog(); sfd.OverwritePrompt = true; sfd.InitialDirectory = initialDirectory; sfd.FileName = filename; if (DialogResult.OK == sfd.ShowDialog(this)) { if (System.IO.File.Exists(sfd.FileName)) { File.Delete(sfd.FileName); } //File.Copy(Path.Combine(Directory.GetParent(Application.ExecutablePath).FullName, "template-egode-output.xls"), sfd.FileName); //Excel excel = new Excel(sfd.FileName); //for (int i = 0; i < lvwOrders.Items.Count; i++) //{ // EgodeSimpleOrder o = ((OrderListViewItem)lvwOrders.Items[i]).Order; // excel.Insert( // "Sheet1", // string.Format("A{0}:H{0}", i+1), // string.Format("'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}'", // o.TaobaoId, o.Product, o.Count, o.Express, o.Addr, o.Money, o.Demand, o.BillNumber)); //} //excel.Close(); StreamWriter w = new StreamWriter(sfd.FileName, false, Encoding.UTF8, 1024); w.WriteLine("ID,产品,数量,快递,地址,金额,特殊要求,快递单号"); foreach (OrderListViewItem item in lvwOrders.Items) { EgodeSimpleOrder o = item.Order; w.WriteLine(string.Format( "'{0},'{1},'{2},'{3},'{4}','{5},'{6},'{7}", o.TaobaoId, o.Product, o.Count, o.Express, o.Addr, o.Money, o.Demand, o.BillNumber)); } w.Close(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void tsbtnImportOrders_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { if (lvwOrders.Items.Count > 0) { DialogResult dr = MessageBox.Show(this, "当前列表中的订单信息将会被清除.\n是否加载订单文件?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (DialogResult.No == dr) { return; } } Cursor.Current = Cursors.WaitCursor; OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel Files(*.xlsx)|*.xlsx|Excel Files 97-2003(*.xls)|*.xls|All Files(*.*)|*.*"; if (DialogResult.OK == ofd.ShowDialog(this)) { Egode.Excel excel = null; excel = new Egode.Excel(ofd.FileName, Excel.OledbVersions.OLEDB12); DataSet ds = excel.Get("Sheet1", string.Empty); // get column index of total money and demand. int indexTaobaoId = -1; int indexProduct = -1; int indexCount = -1; int indexTotalMoney = -1; int indexAddress = -1; int indexExpress = -1; int indexBillNumber = -1; int indexDemand = -1; for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { if (null == ds.Tables[0].Rows[0][i]) { continue; } System.Diagnostics.Trace.WriteLine(i.ToString()); System.Diagnostics.Trace.WriteLine(ds.Tables[0].Rows[0][i].ToString()); if (ds.Tables[0].Rows[0][i].ToString().Trim().ToLower().Equals("旺旺id")) { indexTaobaoId = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Contains("产品")) { indexProduct = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Equals("数量")) { indexCount = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Contains("金额")) { indexTotalMoney = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Equals("地址")) { indexAddress = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Equals("快递")) { indexExpress = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Equals("快递单号")) { indexBillNumber = i; } if (ds.Tables[0].Rows[0][i].ToString().Trim().Equals("特殊要求")) { indexDemand = i; } } lvwOrders.Items.Clear(); for (int i = 1; i < ds.Tables[0].Rows.Count; i++) { DataRow r = ds.Tables[0].Rows[i]; EgodeSimpleOrder o = new EgodeSimpleOrder( r[indexTaobaoId].ToString().Trim(), r[indexProduct].ToString().Trim(), r[indexCount].ToString().Trim(), r[indexTotalMoney].ToString().Trim(), r[indexExpress].ToString().Trim(), r[indexAddress].ToString().Trim(), r[indexDemand].ToString().Trim()); if (-1 != indexBillNumber) { o.BillNumber = r[indexBillNumber].ToString().Trim(); } OrderListViewItem item = new OrderListViewItem(o); lvwOrders.Items.Add(item); } _loadedFilename = ofd.FileName; } } catch (Exception ex) { MessageBox.Show(this, ex.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { Cursor.Current = Cursors.Default; } }