Skip to content

Commit 9c98f4b

Browse files
committed
dispose IWorkbook and XWPFDocument instances by using syntax
1 parent c3a7543 commit 9c98f4b

File tree

3 files changed

+71
-71
lines changed

3 files changed

+71
-71
lines changed

ToxyFramework/Parsers/Spreadsheet/ExcelSpreadsheetParser.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,15 @@ public ToxySpreadsheet Parse()
4848
}
4949
ToxySpreadsheet ss = new ToxySpreadsheet();
5050
ss.Name = Context.Path;
51-
IWorkbook workbook = WorkbookFactory.Create(Context.Path);
52-
53-
HSSFDataFormatter formatter = new HSSFDataFormatter();
54-
for (int i = 0; i < workbook.NumberOfSheets; i++)
51+
using (IWorkbook workbook = WorkbookFactory.Create(Context.Path))
5552
{
56-
ToxyTable table = Parse(workbook, i, extractHeader, extractFooter, hasHeader, fillBlankCells, includeComment, formatter);
57-
ss.Tables.Add(table);
53+
54+
HSSFDataFormatter formatter = new HSSFDataFormatter();
55+
for (int i = 0; i < workbook.NumberOfSheets; i++)
56+
{
57+
ToxyTable table = Parse(workbook, i, extractHeader, extractFooter, hasHeader, fillBlankCells, includeComment, formatter);
58+
ss.Tables.Add(table);
59+
}
5860
}
5961
return ss;
6062
}

ToxyFramework/Parsers/Word2007DocumentParser.cs

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -32,57 +32,53 @@ public ToxyDocument Parse()
3232

3333
using (FileStream stream = File.OpenRead(Context.Path))
3434
{
35-
XWPFDocument worddoc = new XWPFDocument(stream);
36-
if (extractHeader && worddoc.HeaderList != null)
35+
using (XWPFDocument worddoc = new XWPFDocument(stream))
3736
{
38-
StringBuilder sb = new StringBuilder();
39-
foreach (var header in worddoc.HeaderList)
37+
if (extractHeader && worddoc.HeaderList != null)
4038
{
41-
sb.AppendLine(header.Text);
39+
StringBuilder sb = new StringBuilder();
40+
foreach (var header in worddoc.HeaderList)
41+
{
42+
sb.AppendLine(header.Text);
43+
}
44+
rdoc.Header = sb.ToString();
4245
}
43-
rdoc.Header = sb.ToString();
44-
}
45-
if (extractFooter && worddoc.FooterList != null)
46-
{
47-
StringBuilder sb = new StringBuilder();
48-
foreach (var footer in worddoc.FooterList)
46+
if (extractFooter && worddoc.FooterList != null)
4947
{
50-
sb.AppendLine(footer.Text);
48+
StringBuilder sb = new StringBuilder();
49+
foreach (var footer in worddoc.FooterList)
50+
{
51+
sb.AppendLine(footer.Text);
52+
}
53+
rdoc.Footer = sb.ToString();
5154
}
52-
rdoc.Footer = sb.ToString();
53-
}
54-
foreach (var para in worddoc.Paragraphs)
55-
{
56-
string text = para.ParagraphText;
57-
ToxyParagraph p = new ToxyParagraph();
58-
p.Text = text;
59-
//var runs = para.Runs;
60-
p.StyleID = para.Style;
61-
62-
//for (int i = 0; i < runs.Count; i++)
63-
//{
64-
// var run = runs[i];
55+
foreach (var para in worddoc.Paragraphs)
56+
{
57+
string text = para.ParagraphText;
58+
ToxyParagraph p = new ToxyParagraph();
59+
p.Text = text;
60+
p.StyleID = para.Style;
6561

66-
//}
67-
rdoc.Paragraphs.Add(p);
68-
}
62+
rdoc.Paragraphs.Add(p);
63+
}
6964

70-
var tables = worddoc.Tables;
71-
foreach (var table in tables)
72-
{
73-
foreach (var row in table.Rows)
65+
var tables = worddoc.Tables;
66+
foreach (var table in tables)
7467
{
75-
var cells = row.GetTableCells();
76-
foreach (var cell in cells)
68+
foreach (var row in table.Rows)
7769
{
78-
foreach (var para in cell.Paragraphs)
70+
var cells = row.GetTableCells();
71+
foreach (var cell in cells)
7972
{
80-
string text = para.ParagraphText;
81-
ToxyParagraph p = new ToxyParagraph();
82-
p.Text = text;
83-
//var runs = para.Runs;
84-
p.StyleID = para.Style;
85-
rdoc.Paragraphs.Add(p);
73+
foreach (var para in cell.Paragraphs)
74+
{
75+
string text = para.ParagraphText;
76+
ToxyParagraph p = new ToxyParagraph();
77+
p.Text = text;
78+
//var runs = para.Runs;
79+
p.StyleID = para.Style;
80+
rdoc.Paragraphs.Add(p);
81+
}
8682
}
8783
}
8884
}

ToxyFramework/Parsers/Word2007TextParser.cs

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,36 +29,38 @@ public string Parse()
2929
StringBuilder sb = new StringBuilder();
3030
using (FileStream stream = File.OpenRead(Context.Path))
3131
{
32-
XWPFDocument worddoc = new XWPFDocument(stream);
33-
if (extractHeader && worddoc.HeaderList != null)
32+
using (XWPFDocument worddoc = new XWPFDocument(stream))
3433
{
35-
foreach (var header in worddoc.HeaderList)
34+
if (extractHeader && worddoc.HeaderList != null)
3635
{
37-
sb.Append("[Header] ");
38-
sb.AppendLine(header.Text);
36+
foreach (var header in worddoc.HeaderList)
37+
{
38+
sb.Append("[Header] ");
39+
sb.AppendLine(header.Text);
40+
}
3941
}
40-
}
41-
foreach (var elem in worddoc.BodyElements)
42-
{
43-
if (elem is XWPFParagraph)
44-
{
45-
XWPFParagraph para = elem as XWPFParagraph;
46-
string text = para.ParagraphText;
47-
sb.AppendLine(text);
48-
}
49-
else if (elem is XWPFTable)
42+
foreach (var elem in worddoc.BodyElements)
5043
{
51-
XWPFTable table = elem as XWPFTable;
52-
string text = table.Text;
53-
sb.AppendLine(text);
44+
if (elem is XWPFParagraph)
45+
{
46+
XWPFParagraph para = elem as XWPFParagraph;
47+
string text = para.ParagraphText;
48+
sb.AppendLine(text);
49+
}
50+
else if (elem is XWPFTable)
51+
{
52+
XWPFTable table = elem as XWPFTable;
53+
string text = table.Text;
54+
sb.AppendLine(text);
55+
}
5456
}
55-
}
56-
if (extractFooter && worddoc.FooterList != null)
57-
{
58-
foreach (var footer in worddoc.FooterList)
57+
if (extractFooter && worddoc.FooterList != null)
5958
{
60-
sb.Append("[Footer] ");
61-
sb.AppendLine(footer.Text);
59+
foreach (var footer in worddoc.FooterList)
60+
{
61+
sb.Append("[Footer] ");
62+
sb.AppendLine(footer.Text);
63+
}
6264
}
6365
}
6466
}

0 commit comments

Comments
 (0)