1.Excel转Word实现如下
(1)第一种直接Excel表格转Word文档,当时试过了就相当于手动的复制粘贴,可以试试,如果不满足需求,可以试试第二种方法:
public void ExcelToWord(string excPath, string wordPath)
{
FileStream fs1 = new FileStream(excPath, FileMode.Open);
StreamReader m_streamReader = new StreamReader(fs1);
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine ="aa"; //m_streamReader.ReadLine();
FileStream fs2 = new FileStream(wordPath, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs2, System.Text.Encoding.GetEncoding("GB2312"));
sw.WriteLine(strLine);
}
(2)这种方法是通过Word模板来创建Word文件,然后填充书签内容。(小编用的就是这种方法)
/// <summary>
/// 根据模板 创建案卷目录、卷内目录word版
/// </summary>
/// <param name="srcDgv">datatable</param>
/// <param name="FileName">word保存文件地址</param>
/// <param name="ArchivesNo"></param>
/// <param name="wordPath">模板路径</param>
/// <param name="typeName"></param>
public void DatatableToWord(System.Data.DataTable srcDgv, string FileName, string ArchivesNo, string wordPath,string typeName)
{
string path = FileName + ".doc";
int rowStart =1;//添加数据起始行
Report report = new Report();
if (typeName == "卷内目录")
{
rowStart = 4;
report.CreateNewDocument(wordPath + "JNML.doc");
//向标签中插入值
report.InsertValue("ArchivesNo", ArchivesNo);
}
else if (typeName == "案卷目录")
{
rowStart = 3;
report.CreateNewDocument(wordPath + "AJML.doc");
}
if (srcDgv.Rows.Count > 15)
{
for (int i = 0; i < (srcDgv.Rows.Count-15) / 15 + 1; i++)
{
report.AddRow( 1, 15);
}
}
for (int i = 0; i < srcDgv.Rows.Count; i++)
{
string rowNum=(i+1).ToString();
string[] cells = new string[srcDgv.Columns.Count];
cells[0] = rowNum;
for (int j = 1; j < srcDgv.Columns.Count; j++)
{
cells[j] = srcDgv.Rows[i][j].ToString();
}
report.InsertCell(1, i + rowStart, srcDgv.Columns.Count, cells);
}
report.SaveDocument(path);
}
2.Word转PDF
/// <summary>
/// word转换方法
/// </summary>
/// <param name="sourcePath">源文件路径</param>
/// <param name="targetPath">目标文件路径</param>
/// <returns></returns>
public bool WORD_ConvertTo_PDF(string sourcePath, string targetPath)
{
bool result = false;
try
{
Aspose.Words.Document doc = new Aspose.Words.Document(sourcePath);
doc.Save(targetPath, Sa