我在我的表单中有一个DataGridView
。我想要做的是如果用户选择一行并按Button(button_1)
应将来自该行的数据发送到word文档并根据column[i]
替换数字。 现在的代码如下
问题1当我选择一行并单击按钮时,数据发现并替换了Word文件中的数字,但它取代了所有例如“1”的出现,但我只希望它是做了一次,因为我想为每一行做它。 问题2如果用户选择多于一行,则仅导出最后选择的行数据。有任何想法吗??C#导出datagridview选定的行到Word
private void button1_Click(object sender, EventArgs e)
{
string SendPath = "";
if (openFileDialogWord.ShowDialog(this) == DialogResult.OK)
{
SendPath = (openFileDialogWord.InitialDirectory + openFileDialogWord.FileName).ToString();
}
WordDoc(SendPath);
}
public void WordDoc(string getfilename)
{
object FileName = getfilename; //The filepath goes here
//Create word Application Object
Word.Application word = new Word.Application();
//Create word document Object
Word.Document doc = null;
//Create word Missing Object
object missing = System.Type.Missing;
object readOnly = false;
object isVisible = false;
// make visible Word application
word.Visible = true;
try
{
doc = word.Documents.Open(ref FileName, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
doc.Activate();
string Column1;
string Column2;
foreach (DataGridViewRow rows in dataGridView1.SelectedRows)
{
Column1 = rows.Cells[1].Value.ToString();
Column2 = rows.Cells[2].Value.ToString();
this.FindAndReplace(word, "1", Column1);
this.FindAndReplace(word, "2", Column2);
}
MessageBox.Show("Complete");
}
catch (Exception ex)
{
MessageBox.Show("Error : " + ex.Message);
}
}
private void FindAndReplace(Word.Application word, object findText, object replaceText)
{
object matchCase = true;
object matchWholeWord = true;
object matchWildCards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object forward = true;
object format = false;
object matchKashida = false;
object matchDiacritics = false;
object matchAlefHamza = false;
object matchControl = false;
object read_only = false;
object visible = true;
object replace = 2;
object wrap = 1;
word.Selection.Find.Execute(ref findText, ref matchCase,
ref matchWholeWord, ref matchWildCards, ref matchSoundsLike,
ref matchAllWordForms, ref forward, ref wrap, ref format,
ref replaceText, ref replace, ref matchKashida,
ref matchDiacritics,
ref matchAlefHamza, ref matchControl);
}
有人???????? – user2345661 2013-05-07 14:19:27
问题属于本部分 object replace = 2; 我在DreaminCode找到了解决方案 替换对象replace = 2;与对象替换= 1;它正在运作完美。 – user2345661 2013-05-07 16:10:18