private void btnUpload_Click(object sender, EventArgs e) { if (DRLJ.Text != "") { IWorkbook workbook; List <List <string> > zcfzb = new List <List <string> >(); List <List <string> > lrb = new List <List <string> >(); using (FileStream fs = new FileStream(DRLJ.Text, FileMode.Open, FileAccess.Read)) { workbook = new HSSFWorkbook(fs); ISheet sheet = workbook.GetSheet("取数"); int rowK, rowZ; rowK = int.Parse(Func.GetString(sheet.GetRow(0).GetCell(1))); rowZ = int.Parse(Func.GetString(sheet.GetRow(0).GetCell(2))); for (int i = rowK; i <= rowZ; i++) { var list = new List <string>(); for (int j = 0; j < 7; j++) { list.Add(Func.GetString(sheet.GetRow(i).GetCell(j))); } zcfzb.Add(list); } rowK = int.Parse(Func.GetString(sheet.GetRow(1).GetCell(1))); rowZ = int.Parse(Func.GetString(sheet.GetRow(1).GetCell(2))); for (int i = rowK; i <= rowZ; i++) { var list = new List <string>(); for (int j = 8; j < 12; j++) { list.Add(Func.GetString(sheet.GetRow(i).GetCell(j))); } lrb.Add(list); } } string nsrsbh = "91350203MA2XTLL347"; string nsrmc = "厦门馥蕾餐饮管理有限公司"; string license = "7fdd4b67ce41e9c916172dfd0499b8ad"; string sequence = Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09 string timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff"); //yyyy MM dd HH24 mi ss SSS 年月日24时分秒毫秒 Cauthen CS = new Cauthen("100008", nsrsbh, nsrmc, license, sequence, timestamp, "1", "2018-04-01", "2018-06-30"); XDocument document; //获取到XML的根元素进行操作 document = XDocument.Load(System.AppDomain.CurrentDomain.BaseDirectory + @"template\100008.xml"); Func.ProduceReportBody(ref document, "100008", CS, zcfzb, lrb); document.Save(System.AppDomain.CurrentDomain.BaseDirectory + @"template\100008.xml"); //将XML文件加载进来 document = XDocument.Load(System.AppDomain.CurrentDomain.BaseDirectory + @"template\envelope.xml"); Func.ProduceEnvelopeBody(ref document, CS); document.Save(System.AppDomain.CurrentDomain.BaseDirectory + @"template\envelope.xml"); MessageBox.Show(Func.Upload("100008")); } }
/// <summary> /// 生成主体文档 /// </summary> /// <param name="XDEnvelope">主体文档</param> /// <param name="cauthen">参数</param> public static void ProduceEnvelopeBody(ref XDocument XDEnvelope, Cauthen cauthen) { XElement XEauthen = XDEnvelope.Element("envelope").Element("header").Element("authen"); for (int i = 0; i < 6; i++) { XEauthen.Element(cauthen.name[i]).SetValue(cauthen[i]); } XEauthen = XDEnvelope.Element("envelope").Element("body").Element("logic"); for (int i = 6; i <= 8; i++) { XEauthen.Element(cauthen.name[i]).SetValue(cauthen[i]); } using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"template\" + cauthen.service + ".xml", Encoding.GetEncoding("gb2312"))) { XDEnvelope.Element("envelope").Element("body").Element("logic").Element("cjbbxml").SetValue(sr.ReadToEnd()); sr.Close(); } }
public static void ProduceReportBody(ref XDocument XDReport, string SBLX, Cauthen cauthen, List <List <string> > zcfzb, List <List <string> > lrb) { XNamespace xNamespace = "http://www.chinatax.gov.cn/dataspec/"; XElement xElement = XDReport.Element(xNamespace + "taxML").Element(xNamespace + "syxqyzcfzb").Element(xNamespace + "nsrxxForm1"); xElement.Element(xNamespace + "nsrsbh").SetValue(cauthen.nsrsbh); xElement.Element(xNamespace + "nsrmc").SetValue(cauthen.nsrmc); xElement.Element(xNamespace + "bsrq").SetValue(DateTime.Now.ToString("yyyy-MM-dd")); xElement.Element(xNamespace + "skssqq").SetValue(cauthen.sssq_q); xElement.Element(xNamespace + "skssqz").SetValue(cauthen.sssq_z); foreach (var xqyzcfzbGridlb in XDReport.Element(xNamespace + "taxML").Element(xNamespace + "syxqyzcfzb").Element(xNamespace + "syxqyzcfzbGrid").Elements()) { int i = int.Parse(xqyzcfzbGridlb.Element(xNamespace + "ewbhxh").Value); if (zcfzb[i - 1][1] != "") { xqyzcfzbGridlb.Element(xNamespace + "qmyeZc").SetValue(zcfzb[i - 1][2]); xqyzcfzbGridlb.Element(xNamespace + "ncyeZc").SetValue(zcfzb[i - 1][3]); } if (zcfzb[i - 1][4] != "") { xqyzcfzbGridlb.Element(xNamespace + "qmyeQy").SetValue(zcfzb[i - 1][5]); xqyzcfzbGridlb.Element(xNamespace + "ncyeQy").SetValue(zcfzb[i - 1][6]); } } xElement = XDReport.Element(xNamespace + "taxML").Element(xNamespace + "syxqylrb").Element(xNamespace + "nsrxxForm2"); xElement.Element(xNamespace + "nsrsbh").SetValue(cauthen.nsrsbh); xElement.Element(xNamespace + "nsrmc").SetValue(cauthen.nsrmc); xElement.Element(xNamespace + "bsrq").SetValue(DateTime.Now.ToString("yyyy-MM-dd")); xElement.Element(xNamespace + "skssqq").SetValue(cauthen.sssq_q); xElement.Element(xNamespace + "skssqz").SetValue(cauthen.sssq_z); foreach (var syxqylrbGrid in XDReport.Element(xNamespace + "taxML").Element(xNamespace + "syxqylrb").Element(xNamespace + "syxqylrbGrid").Elements()) { int i = int.Parse(syxqylrbGrid.Element(xNamespace + "ewbhxh").Value); if (lrb[i - 1][1] != "") { syxqylrbGrid.Element(xNamespace + "bnljje").SetValue(lrb[i - 1][2]); syxqylrbGrid.Element(xNamespace + "byje").SetValue(lrb[i - 1][3]); } } }