Нет описания

AsposeWord.cs 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. using Aspose.Words;
  2. using Aspose.Words.Saving;
  3. using Aspose.Words.Tables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Web;
  12. namespace CallCenter.Utility
  13. {
  14. public class AsposeWord
  15. {
  16. /// <summary>
  17. /// word版本
  18. /// </summary>
  19. public int _docversion;
  20. /// <summary>
  21. /// word版本
  22. /// </summary>
  23. public int Docversion
  24. {
  25. get { return _docversion; }
  26. set { _docversion = value; }
  27. }
  28. public DocumentBuilder oWordApplic;
  29. public Aspose.Words.Document oDoc;
  30. public void OpenWithTemplate(string strFileName)
  31. {
  32. if (!string.IsNullOrEmpty(strFileName))
  33. {
  34. oDoc = new Aspose.Words.Document(strFileName);
  35. }
  36. }
  37. public void Open()
  38. {
  39. oDoc = new Aspose.Words.Document();
  40. }
  41. public void Builder()
  42. {
  43. oWordApplic = new DocumentBuilder(oDoc);
  44. }
  45. /// <summary>
  46. /// 保存文件
  47. /// </summary>
  48. /// <param name="strFileName"></param>
  49. public void SaveAs(string strFileName)
  50. {
  51. if (this.Docversion == 2007)
  52. {
  53. oDoc.Save(strFileName, SaveFormat.Docx);
  54. }
  55. else
  56. {
  57. oDoc.Save(strFileName, SaveFormat.Doc);
  58. }
  59. }
  60. /// <summary>
  61. /// 导出文件
  62. /// </summary>
  63. /// <param name="strFileName"></param>
  64. public byte[] ExportAs()
  65. {
  66. using (MemoryStream ms = new MemoryStream())
  67. {
  68. oDoc.Save(ms, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
  69. return ms.GetBuffer();
  70. }
  71. }
  72. /// <summary>
  73. /// 设置纸张
  74. /// </summary>
  75. /// <param name="papersize"></param>
  76. public void setPaperSize(string papersize)
  77. {
  78. switch (papersize)
  79. {
  80. case "A4":
  81. foreach (Aspose.Words.Section section in oDoc)
  82. {
  83. section.PageSetup.PaperSize = PaperSize.A4;
  84. section.PageSetup.Orientation = Orientation.Portrait;
  85. section.PageSetup.VerticalAlignment = Aspose.Words.PageVerticalAlignment.Top;
  86. }
  87. break;
  88. case "A4H"://A4横向
  89. foreach (Aspose.Words.Section section in oDoc)
  90. {
  91. section.PageSetup.PaperSize = PaperSize.A4;
  92. section.PageSetup.Orientation = Orientation.Landscape;
  93. section.PageSetup.TextColumns.SetCount(2);
  94. section.PageSetup.TextColumns.EvenlySpaced = true;
  95. section.PageSetup.TextColumns.LineBetween = true;
  96. //section.PageSetup.LeftMargin = double.Parse("3.35");
  97. //section.PageSetup.RightMargin =double.Parse("0.99");
  98. }
  99. break;
  100. case "A3":
  101. foreach (Aspose.Words.Section section in oDoc)
  102. {
  103. section.PageSetup.PaperSize = PaperSize.A3;
  104. section.PageSetup.Orientation = Orientation.Portrait;
  105. }
  106. break;
  107. case "A3H"://A3横向
  108. foreach (Aspose.Words.Section section in oDoc)
  109. {
  110. section.PageSetup.PaperSize = PaperSize.A3;
  111. section.PageSetup.Orientation = Orientation.Landscape;
  112. section.PageSetup.TextColumns.SetCount(2);
  113. section.PageSetup.TextColumns.EvenlySpaced = true;
  114. section.PageSetup.TextColumns.LineBetween = true;
  115. }
  116. break;
  117. case "16K":
  118. foreach (Aspose.Words.Section section in oDoc)
  119. {
  120. section.PageSetup.PaperSize = PaperSize.B5;
  121. section.PageSetup.Orientation = Orientation.Portrait;
  122. }
  123. break;
  124. case "8KH":
  125. foreach (Aspose.Words.Section section in oDoc)
  126. {
  127. section.PageSetup.PageWidth = double.Parse("36.4 ");//纸张宽度
  128. section.PageSetup.PageHeight = double.Parse("25.7");//纸张高度
  129. section.PageSetup.Orientation = Orientation.Landscape;
  130. section.PageSetup.TextColumns.SetCount(2);
  131. section.PageSetup.TextColumns.EvenlySpaced = true;
  132. section.PageSetup.TextColumns.LineBetween = true;
  133. //section.PageSetup.LeftMargin = double.Parse("3.35");
  134. //section.PageSetup.RightMargin = double.Parse("0.99");
  135. }
  136. break;
  137. }
  138. }
  139. /// <summary>
  140. /// 导出交办单
  141. /// </summary>
  142. public void CreateAssignWord(DataTable dt, DataTable jbdata, string usercode)
  143. {
  144. oWordApplic.MoveToBookmark("sxbh");//跳转到书签名是sxbh的位置
  145. oWordApplic.Write(dt.Rows[0]["F_WorkOrderId"].ToString());
  146. oWordApplic.MoveToBookmark("gdly");
  147. oWordApplic.Write(dt.Rows[0]["SourceName"].ToString());
  148. oWordApplic.MoveToBookmark("blsx");
  149. if (jbdata!=null && jbdata.Rows.Count>0 && jbdata.Rows[0]["F_LimitTime"] != null && jbdata.Rows[0]["F_LimitTime"].ToString() != "")
  150. oWordApplic.Write(DateTime.Parse(jbdata.Rows[0]["F_LimitTime"].ToString()).ToString("yyyy-MM-dd"));
  151. else
  152. oWordApplic.Write("");
  153. oWordApplic.MoveToBookmark("lxdh");
  154. oWordApplic.Write(dt.Rows[0]["F_CusPhone"].ToString());
  155. oWordApplic.MoveToBookmark("qssj");
  156. if (jbdata != null && jbdata.Rows.Count > 0 && jbdata.Rows[0]["F_SureTime"] != null && jbdata.Rows[0]["F_SureTime"].ToString() != "")
  157. oWordApplic.Write(DateTime.Parse(jbdata.Rows[0]["F_SureTime"].ToString()).ToString("yyyy-MM-dd"));
  158. else
  159. oWordApplic.Write("");
  160. oWordApplic.MoveToBookmark("slsj");
  161. if (dt.Rows[0]["F_DealTime"] != null && dt.Rows[0]["F_DealTime"].ToString() != "")
  162. oWordApplic.Write(DateTime.Parse(dt.Rows[0]["F_DealTime"].ToString()).ToString("yyyy-MM-dd"));
  163. else
  164. oWordApplic.Write("");
  165. oWordApplic.MoveToBookmark("ldr");
  166. oWordApplic.Write(dt.Rows[0]["F_CusName"].ToString());
  167. oWordApplic.MoveToBookmark("sxqy");
  168. oWordApplic.Write(dt.Rows[0]["F_SourceAddress"].ToString());
  169. oWordApplic.MoveToBookmark("nrzy");
  170. if (dt.Rows[0]["F_Content"] != null && dt.Rows[0]["F_Content"].ToString() != "")
  171. {
  172. oWordApplic.Write(dt.Rows[0]["F_Content"].ToString());
  173. }
  174. else
  175. {
  176. oWordApplic.Write(dt.Rows[0]["F_ComContent"].ToString());
  177. }
  178. oWordApplic.MoveToBookmark("zbdw");
  179. if(jbdata != null && jbdata.Rows.Count > 0)
  180. oWordApplic.Write(jbdata.Rows[0]["DeptName"].ToString());
  181. else
  182. oWordApplic.Write("");
  183. oWordApplic.MoveToBookmark("xbdw");
  184. if (jbdata != null && jbdata.Rows.Count > 0)
  185. oWordApplic.Write(jbdata.Rows[0]["OtherDeptName"].ToString());
  186. else
  187. oWordApplic.Write("");
  188. oWordApplic.MoveToBookmark("ddyj");
  189. if (jbdata != null && jbdata.Rows.Count > 0)
  190. oWordApplic.Write(jbdata.Rows[0]["F_AssignedOpinion"].ToString());
  191. else
  192. oWordApplic.Write("");
  193. oWordApplic.MoveToBookmark("cbyj");
  194. oWordApplic.Write("");
  195. oWordApplic.MoveToBookmark("ldps");
  196. oWordApplic.Write("");
  197. oWordApplic.MoveToBookmark("cljg");
  198. oWordApplic.Write(dt.Rows[0]["F_Result"].ToString());
  199. oWordApplic.MoveToBookmark("shy");
  200. oWordApplic.Write(usercode);
  201. oWordApplic.MoveToBookmark("ddy");
  202. if (jbdata != null && jbdata.Rows.Count > 0)
  203. oWordApplic.Write(jbdata.Rows[0]["F_CreateUser"].ToString());
  204. else
  205. oWordApplic.Write("");
  206. }
  207. }
  208. }