2017-05-19 11 views
0

私はC#とWindowsフォームを学び始めています。 resx(XML)ファイルをExcelに変換するアプリケーションを作成します。Epplusエクセル&レックスファイルへのスペースを取り除く方法

すべてのコードが機能し、Excelファイルが作成され、resxファイルに変換できます。

私のExcelファイルを開くと、データの前後に空白が追加されました(Excel cell example)。そして、私はそれがファイルをRESXに変換するとき、それはここで Resx file example

をして、私のRESX =>がコードを優れている:あなたはすべての私のコードをしたい

//I use a application WindowsForm so any 'LBL'/'TXT make reference to label or textBox I use them to set file or folder path 
private void writeExcel() 
    { 
     Dictionary<string, string> dataSave = new Dictionary<string, string>(); 
     var path = LBL_DocumentPath.Text; 
     XDocument doc = XDocument.Load(path); 
     IEnumerable<XNode> nodes = doc.Descendants("data"); 
     foreach (XElement node in nodes) 
     { 
      string name = node.Attribute("name").Value; 
      string value = node.Value; 
      dataSave.Add(name, value); 
     } 
     CreateExcel(dataSave); 
    } 

    private void CreateExcel(Dictionary<string, string> dico) 
    { 
     int i = 1; 
     FileInfo newFile = new FileInfo(LBL_FolderPath.Text + "/" + TXT_FileName.Text + ".xlsx"); 
     using (ExcelPackage package = new ExcelPackage(newFile)) 
     { 
      try 
      { 
       ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Inventry"); 
       worksheet.Cells[1, 1].Value = "Name"; 
       worksheet.Cells[1, 2].Value = "value"; 
       worksheet.Cells[1, 3].Value = "translation"; 
       foreach (KeyValuePair<string, string> data in dico) 
       { 
        string testMessage = String.Format("{0}", data.Value); 
        string delSpace = testMessage; 
        Regex regex = new Regex(@"(\s){2,}"); 
        testMessage = regex.Replace(delSpace, "&"); 
        i++; 
        worksheet.Cells[i, 1].Value = String.Format("{0}", data.Key); 
        worksheet.Cells[i, 2].Value = String.Format("{0}", testMessage); 
        worksheet.Cells.AutoFitColumns(); 
       } 


       package.Save(); 
       MessageBox.Show("File created ! " + LBL_FolderPath.Text + "\\" + TXT_FileName.Text); 
      } 
      catch (Exception) 
      { 
       MessageBox.Show("File already exist, checks : " + LBL_DocumentPath.Text + "\\" + TXT_FileName.Text); 
      } 
     } 
    }  

場合、私はあなたのDropboxのリンクを与えることができます。

ご協力いただきありがとうございます。

数学。

Ps:私の謝罪、私の英語はあまり良くありません。あなたが私を正しく理解することを願っています。

+0

によって

string testMessage = String.Format("{0}", data.Value); string delSpace = testMessage; Regex regex = new Regex(@"(\s){2,}"); testMessage = regex.Replace(delSpace, "&"); 

に取って代わるように動作しません、私の正規表現です。グレメールエラーを目立たせることなく、簡単に理解できます。私がここに見る英語の上のWaaay(私を含む) –

答えて

0

それは私が、私はあなたの英語は完全に大丈夫だと思います

string testMessage = String.Format("{0}", data.Value);    
testMessage = testMessage.Replace("\n",string.Empty); 
testMessage = testMessage.Replace("\r", string.Empty); 
testMessage = testMessage.Replace(" ", string.Empty); 
関連する問題