1

エクスポートしようとしているテーブルは、C# で Web アプリケーションを作成している Visual Studio 2008 の SQL データベースから Crystal Reports にインポートされます。Word文書にエクスポートしようとしていますが、後でMS WORDで編集できる表の書式を維持します。しかし、私が得るのはテキストボックスの束だけです。

それをExcelドキュメントとしてエクスポートしてからWordにコピーしようとしましたが、うまくいきましたが、C#コードだけでそれを行う必要があります。

質問は、Crystal Reports からエクスポートされた Word ドキュメントで編集可能なテーブルを直接作成するより良い方法はありますか、または Word で Excel テーブルをコピーする方法はありますが、C# コードでのみ行う方法はありますか?

どんな助けにも本当に感謝します!数日間グーグルで検索していますが、まだ適切な解決策が見つかりません...

4

1 に答える 1

0

ExcelドキュメントをWordに挿入して保存することができました。データパスだけの小さな問題は少し調整する必要がありますが、それ以外は機能します:)

private void ConvertExcelToWordAndAutoSave() {

        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
       //TT Excel.Range range;



        object misValue = System.Reflection.Missing.Value;

        DateTime dt = new DateTime();
        dt = DateTime.Now;

            // open excel 
            xlApp = new Excel.ApplicationClass();
            //Change THE LOCATION!
            xlWorkBook = xlApp.Workbooks.Open("C:\\Documents and Settings\\Student\\Desktop\\ExportFiles\\Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            xlWorkSheet=(Excel.Worksheet)xlWorkBook.ActiveSheet;




            // open word 
            object oMissing = System.Reflection.Missing.Value;
            object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */

            //Start Word and create a new document.
            Word._Application oWord;
            Word._Document oDoc;

            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);



            Word.Paragraph oPara1;
            oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
            oPara1.Range.Text = "Snimeno na:" + " " + dt+"\n";
            oPara1.Range.Font.Bold = 1;
            oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
            oPara1.Range.InsertParagraphAfter();




            xlWorkSheet.get_Range("A1", "N49").Copy(Missing.Value);

            oWord.Selection.Paste();

            oWord.Selection.TypeParagraph();
           //The textBox is for the name of the new Word document
            if (TextBox1.Text == "")
                TextBox1.Text = "Document1";
         object fileName = @"C:\\Documents and Settings\\Student\\Desktop\\ExportFiles\\"+TextBox1.Text+".docx"; 

            oDoc.SaveAs(ref fileName,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
于 2012-08-27T06:55:06.467 に答える