1.先打開你需要替換的word文檔,在想要後續更換欄位值的地方添加“書簽”。 2.將模板文檔存放在 程式的Debug文件下。 3.生成文件的按鈕點擊事件 代碼: 註:需要引用 Aspose.Words.dll ...
1.先打開你需要替換的word文檔,在想要後續更換欄位值的地方添加“書簽”。
2.將模板文檔存放在 程式的Debug文件下。
3.生成文件的按鈕點擊事件 代碼:
string templatePath = Application.StartupPath + "\\模板.docx"; //文檔模板物理路徑 Document doc = new Document(templatePath); try { Hashtable tables = new Hashtable(); tables.Add("A型", aJ); tables.Add("A價", aF); tables.Add("B型", bJ); tables.Add("B價", bF); tables.Add("F型", fJ); tables.Add("F價", fF);
//圖片添加 //Aspose.Words.DocumentBuilder builder1 = new Aspose.Words.DocumentBuilder(doc); //// Response.ContentType = pictureBox1.ImageLocation;//設定輸出文件類型 //builder1.MoveToBookmark("圖片審核者"); //builder1.InsertImage((byte[])GetPictureData(pictureBox1.ImageLocation), 60, 30); tables.Add("日期", dtpBaogao.Value.ToString("yyyy年MM月dd日")); tables.Add("日期2", dtpJieshou.Value.ToString("yyyy.MM.dd")); GetHTFile(doc, tables); string downname = txtName.Text + "----報告.pdf"; // doc.Save(downname, SaveFormat.Pdf); SaveFileDialog SaveData = new SaveFileDialog(); //以保存文件的方式打開 SaveData.RestoreDirectory = true; //打開上傳存放時的目錄 SaveData.Title = "請選擇路徑"; //標題 //SaveData.InitialDirectory = @"C:\"; //預設路徑是C:\,可更改 SaveData.Filter = "PDF文件(*.pdf)|*.pdf"; //只能保存為sql文件(可根據需求更改) string script = " "; SaveData.FileName = txtName.Text + "----報告"; if (SaveData.ShowDialog() == DialogResult.OK) //如果選定路徑按下保存按鈕 { script = SaveData.FileName; //script賦值為選擇保存的路徑 doc.Save(script, SaveFormat.Pdf); //生成word文件,就將 SaveFormat.Pdf改成.word MessageBox.Show("生成成功!");
this.Close(); } } catch (Exception ex) { }
}
public byte[] GetPictureData(string imagepath) { /**/////根據圖片文件的路徑使用文件流打開,並保存為byte[] FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重載方法 byte[] byData = new byte[fs.Length]; fs.Read(byData, 0, byData.Length); fs.Close(); return byData; } public static void GetHTFile(Document doc, Hashtable table) { BookmarkCollection bookmarks = doc.Range.Bookmarks; foreach (Bookmark mark in bookmarks) { if (table.ContainsKey(mark.Name)) { mark.Text = table[mark.Name].ToString(); } } }
註:需要引用 Aspose.Words.dll