1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
namespace
Excel2Word
{
public
class
BLL
{
private
Microsoft.Office.Interop.Word.Application app =
null
;
//全局变量 word应用程序
/// <summary>
/// 从Excel中读取数据
/// </summary>
/// <param name="excelPath"></param>
/// <param name="sheetName"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Word文本替换
/// </summary>
/// <param name="doc">文档</param>
/// <param name="args">要替换的内容</param>
public
void
ReplaceWord(Document doc, Dictionary<
string
,
string
> 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
;
}
}
/// <summary>
/// word文档资源释放
/// </summary>
/// <param name="doc">要释放资源的文档</param>
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
;
}
}
/// <summary>
/// 从模板创建Word文件
/// </summary>
/// <param name="fileName">模板位置及名称</param>
/// <returns></returns>
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
;
}
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/// <summary>
/// 过滤低位非打印字符
/// </summary>
/// <param name="tmp"></param>
/// <returns></returns>
private
string
ReplaceLowOrderASCIICharacters(
string
tmp)
{
StringBuilder info =
new
StringBuilder();
foreach
(
char
cc
in
tmp)
{
int
ss = (
int
)cc;
if
(((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32)))
info.AppendFormat(
" "
, ss);
else
info.Append(cc);
}
return
info.ToString();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/// <summary>
/// 从DataSet生成Excel
/// </summary>
/// <param name="ds">DataSet</param>
/// <param name="strExcelFileName">文件名</param>
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();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//设置版面为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 < images.Length; i++)
{
//定义章节
Chapter chapter =
new
Chapter(
new
Paragraph(images[i]), i + 1);
//加入章节
document.Add(chapter);
//获得图片
iTextSharp.text.Image tempImage = iTextSharp.text.Image.getInstance(images[i]);
//设置图片大小为原图的70%
tempImage.scalePercent(70);
//文档加入图片
document.Add(tempImage);
//文档新建一页
document.newPage();
}
}
catch
(Exception ex)
{
throw
ex;
}
document.Close();
//关闭pdf文档
|