C#对word、excel、pdf等格式文件的操作总结 .

一、word

这是我以前工作时写过的一个业务逻辑处理类,里面有不少文件操作的方法,这里主要关注一下C#对word的操作。里面的方法可以直接拿出来用,主要是通过word的dot模版来进行创建word、替换word等操作。

namespace Excel2Word
{
public class BLL
{
private Microsoft.Office.Interop.Word.Application app = null;//全局变量 word应用程序

///

/// 从Excel中读取数据
///

///
///
///
public static DataSet GetDataFromExcel(string excelPath, string sheetName)
{
DataSet ds = new DataSet();
string strConn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + excelPath.ToString().Trim() + "; Extended Properties=Excel 8.0;";

try
{
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();

OleDbDataAdapter oda = new OleDbDataAdapter("select * from [" + sheetName + "]", conn);
oda.Fill(ds);
}
}
catch
{
throw new Exception("获取Excel数据时发生异常...");
}
return ds;
}

///

/// Word文本替换
///

/// 文档
/// 要替换的内容
public void ReplaceWord(Document doc, Dictionary args)
{
try
{
object first = 0;
object last = doc.Characters.Count;
Range range = doc.Range(ref first, ref last);

Microsoft.Office.Interop.Word.Find finder = range.Find;
finder.ClearFormatting();

object missingValue = Type.Missing;
object replaceArea = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;

foreach (var item in args)
{
object findStr = "{" + item.Key.Trim() + "}";
object replaceStr = item.Value.Trim();

//替换内容
finder.Execute(ref findStr, ref missingValue, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref missingValue, ref missingValue, ref missingValue,
ref replaceStr, ref replaceArea, ref missingValue,
ref missingValue, ref missingValue, ref missingValue);
}
}
catch
{
return;
}
}

///

/// word文档资源释放
///

/// 要释放资源的文档
public void DisposeWord(Document doc)
{
try
{
object oMissing = System.Reflection.Missing.Value;

if (doc != null)
{
//关闭Word并回收资源
doc.Close(ref oMissing, ref oMissing, ref oMissing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
doc = null;
}

if (app != null)
{
app.Quit(ref oMissing, ref oMissing, ref oMissing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
GC.Collect();
}
}
catch
{
return;
}
}

///

/// 从模板创建Word文件
///

/// 模板位置及名称
///
public Document CreateWord(string fileName, string dsr)
{
try
{
app = new Microsoft.Office.Interop.Word.Application();//打开word程序
Document doc = new Document();//创建word对象
object unknow = Type.Missing;
string date = DateTime.Now.ToShortDateString();
object savefilename = @"D:\" + dsr + ".doc";//保存路径
object File = fileName;
app.Visible = false;//设置word程序为不可见
doc = app.Documents.Open(ref File,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow);//打开word文档

doc.SaveAs(ref savefilename, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow);//保存word文档

return doc;
}
catch
{
return null;
}
}
}
}
二、excel

webform中,导出excel的代码:

public void ExportResult(DataTable dt, string excelName)
{
Response.Clear();
Response.Charset = "";
Response.ContentType = "applicationnd.ms-xls";
StringWriter sw = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(sw);

DataGrid dg = new DataGrid();
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(htmlWrite);
Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(excelName));
Response.Write(sw.ToString());
Response.End();
}如果遇到身份证等类型的字段,由于科学计数法的原因导出excel之后很可能会“截断”,因此有必要对这种长整型的字段进行处理。

///

/// 过滤低位非打印字符
///

///
///
private string ReplaceLowOrderASCIICharacters(string tmp)
{
StringBuilder info = new StringBuilder();
foreach (char cc in tmp)
{
int ss = (int)cc;
if (((ss >= 0) && (ss = 11) && (ss = 14) && (ss
/// 从DataSet生成Excel
///

/// DataSet
/// 文件名
public void ExportExcelByDataSet(DataSet ds, string strExcelFileName)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

int rowIndex = 1;
int colIndex = 0;

excel.Application.Workbooks.Add(true);

DataTable dt = ds.Tables[0];
foreach (DataColumn col in dt.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
}

foreach (DataRow row in dt.Rows)
{
rowIndex++;
colIndex = 0;

foreach (DataColumn col in dt.Columns)
{
colIndex++;
excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}

excel.Visible = false;
excel.ActiveWorkbook.SaveAs(strExcelFileName + ".XLS", Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel9795, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);

excel.Quit();
excel = null;
GC.Collect();
}

三、pdf

搜索《PDF文件制作全攻略》,可以找到现成的资料,里面的代码和文档也相对比较齐全、清晰,这里简单做个示例demo——生成一个带章节的,内容为图片的pdf文档。

实现步骤:

1)在vs环境下新建项目,引用 ICSharpCode.SharpZipLib.dll、itextsharp.dll 这两个dll文件

2)在按钮事件下输入如下代码:

//设置版面为A4大小
Document document = new Document(PageSize.A4);

//创建一个test.pdf文件
PdfWriter.getInstance(document, new FileStream("test.pdf", FileMode.Create));

document.Open();//打开pdf文档

try
{
string[] images = Directory.GetFiles("test/");

for (int i = 0; i C#对word、excel、pdf等格式文件的操作总结 .

时间: 2024-10-27 16:38:47

C#对word、excel、pdf等格式文件的操作总结 .的相关文章

在Java中如何操作word, excel, pdf文件

java操作word,excel,pdf 在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下java对word.excel.pdf文件的读取.本篇博客只是讲解简单应用.如果想深入了解原理.请读者自行研究一些相关源码. 首先我们来认识一下读取相关文档的jar包: 1. 引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-

Web方式预览Office/Word/Excel/pdf文件解决方案

最近在做项目时需要在Web端预览一些Office文件,经过在万能的互联网上一番搜索确定并解决了. 虽然其中碰到的一些问题已经通过搜索和自己研究解决了,但是觉得有必要将整个过程记录下来,以方便自己以后查找,也方便以后碰到相同问题的朋友. 首先大家都知道在浏览器中是无法直接直接打开office文件查看的(IE除外),所以我们需要将office文件转换成其他格式来预览. 所以我的实现方法是 office文件=>pdf文件=>swf文件=>flexpaper中浏览 我们用到的软件如下: 1.li

PPT,Word,Excel,PDF,TXT转换图片

Aspose组件下载连接:http://pan.baidu.com/s/1slG2SdJ 1.所有的转换图片都要调用Aspose组件,在执行线程之前要先加上  LicenseHelper.ModifyInMemory.ActivateMemoryPatching(); //进入线程执行转换图片的方法 UploaderCalculators.Add(filePath, fileType, Id.ToString(), UId.ToString(), Server.MapPath(imgUrl),

将Excel另存为CSV格式文件

直接将Excel另存为CSV,速度很快: $FilePath_Public_ip_maps_infos="D:\My Documents\Work\IP映射表.xlsx" $Excel = New-Object -Com Excel.Application $Excel.visible = $False $Excel.displayalerts=$False $WorkBook = $Excel.Workbooks.Open($FilePath_Public_ip_maps_infos

Excel和CSV格式文件的不同之处

来源:https://blog.csdn.net/weixin_39198406/article/details/78705016 1.个人理解:为何选择使用csv来存储接口测试用例相关字段数据,而不选择excel,主要原因是 "CSV是安全的,可以清楚地区分数值和文本.CSV不处理数据并按原样存储. 而由于数值和文本之间没有明确的区别或区分,Excel可以使用自动格式化功能搞乱您的邮政编码和信用卡号码,所以会造成接口用例相关字段参数值错误. " 2.后续,是直接采用yaml配置文件来

1、Python django 框架下的word Excel TXT Image 等文件的上传

1.文件上传(input标签) (1)html代码(form表单用post方法提交) 1 <input class="btn btn-primary col-md-1" style="margin:0px 15px 25px 15px;" id="submitForm" type="button" value="提交" /> 2 <form id="picture_form&qu

mysql 导出表中数据为excel的xls格式文件

需求: 利用mysql客户端导出数据库中数据,以便进行分析,统计. 解决命令: 在windos命令行(linux同理)下,用如下命令即可: mysql -hlocalhost -uroot -ppassword -e "select * from sptest.ta;" sptest >F:\\SecondDesktop\\exporttest.xls -u root用户 -p root密码 -e 导出sql语句结果 sql语句  可以自定义需要导出的列和行数 数据库名 >

Excel转换WPS格式可以怎样操作

Excel如何转换成WPS格式呢?对于一些办公人员有时候就要将文件格式进行转换,第一次进行文件格式想必就不知道怎么操作了.下面小编告诉大家一种方法,可以按照这样的步骤进行操作! 1.可以尝试一下面的这种操作.同样也需要借助到辅助工具,这个需要大家在电脑上安装一款迅捷PDF转换器然后进行操作了. 2.安装完成后进入到这样一个页面,只需移动鼠标点击选择 到栏目"WPS文件转换",打开栏目后会出现一些功能,只需点击到文件转换WPS这个功能. 3.鼠标移动到添加文件上,在出现的文件框中找到那个

PDF/WORD/EXCEL 图片预览

一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourcePath, string targetPath) { bool result = false; Microsoft.Office.Interop.Word.WdExportFormat exportFormat = Microsoft.Office.Interop.Word.WdExportForma