- Code: Select all
string txtPath = Path.Combine(@"C:\Users\xj2ssf\Desktop\EDM_test", string.Format("{0}_bySpire_{1}.txt",
Path.GetFileNameWithoutExtension(pdf), DateTime.Now.ToString("yyyy_MM_dd_hh_mm_fff")));
string xlsPath = Path.ChangeExtension(txtPath, ".xlsx");
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(pdf);
Spire.Pdf.Utilities.PdfTableExtractor extractor = new Spire.Pdf.Utilities.PdfTableExtractor(doc);
using (ExcelPackage packageNew = new ExcelPackage(new FileInfo(@"D:\From_Git\NEWEDM\GeneralUI\Template\CheryICDRetrieveTemplate.xlsx")))
using (StreamWriter sw = new StreamWriter(txtPath, true))
{
// Loop through the pages
for (int pageIndex = 0; pageIndex < doc.Pages.Count; pageIndex++)
{
sw.WriteLine("Page: {0}", pageIndex);
Spire.Pdf.Utilities.PdfTable[] tableList = extractor.ExtractTable(pageIndex);
if (tableList != null && tableList.Length > 0)
{
int count = 0;
//Loop through the table in the list
foreach (Spire.Pdf.Utilities.PdfTable table in tableList)
{
count++;
ExcelWorksheet excelWorksheet = packageNew.Workbook.Worksheets.Add(String.Format(@"Page_{0}_Table_{1}", pageIndex.ToString(), count.ToString()));
//Get row number and column number of a certain table
int row = table.GetRowCount();
int column = table.GetColumnCount();
//Loop though the row and colunm
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
var sb = new StringBuilder();
//Get text from the specific cell
string text = table.GetText(i, j);
//Add text to the string builder
sb.Append(text + ";");
sw.Write(sb.ToString());
excelWorksheet.Cells[i + 1, j + 1].Value = sb.ToString();
excelWorksheet.Cells[i + 1, j + 1].Style.WrapText = true;
}
sw.WriteLine();
}
}
}
sw.WriteLine("============================================");
}
packageNew.SaveAs(new FileInfo(xlsPath));
}