现在合并了两个Excel表格 有一列为文本格式 “0001”通过程序合并后变为“1” 了.
希望还保持“0001”该怎么修改程序?
希望可以实现保留原单元格格式合并.
希望还保持“0001”该怎么修改程序?
希望可以实现保留原单元格格式合并.
private void buttonStart_Click(object sender, EventArgs e) { textBoxInput.ReadOnly = true; buttonStart.Enabled = false; textBoxInput.Refresh(); buttonStart.Refresh(); #region 更新导入列表 listReflash(); #endregion string[] sheetWords = SplitWords(textBoxSheets.Text); int sheetStart=0; int sheetEnd=0; string[] rangeColumnWords = SplitWords(textBoxRC.Text); string[] rangeRowWords = SplitWords(textBoxRR.Text); int[,,] rangeRegion = new int[2, 2, 2]; string[] rangeString = new string[2]; int standardColumn = Convert.ToInt32(textBoxSC.Text); int standardRow = Convert.ToInt32(textBoxSR.Text); int fileCount = textBoxInput.Lines.Length; if (fileCount < 2) { MessageBox.Show("导入表至少含有2个文件!"); return; } ClassExcelOperation excel = new ClassExcelOperation(2, false, false, false); int[] WorkSheetCount = new int[2]; excel.OpenExcel(textBoxInput.Lines[0], 0); WorkSheetCount[0] = excel.WSheetCount(0); for (int fileIndex = 1; fileIndex < fileCount; fileIndex++) { excel.OpenExcel(textBoxInput.Lines[fileIndex], 1); WorkSheetCount[1] = excel.WSheetCount(1); #region 工作表范围确定sheetStart,sheetEnd sheetStart=Convert.ToInt32(sheetWords[0]); if (sheetWords[1] == "#") { if (WorkSheetCount[0] != WorkSheetCount[1]) { string MsgWords; MsgWords = "两个工作薄表单数不一致,将以短表为准!位置:\r\n" + textBoxInput.Lines[0]; MsgWords += "\r\n" + textBoxInput.Lines[fileIndex] + "\r\n继续么?"; if (MessageBox.Show(MsgWords, "重要提示:", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No) { return; } else { sheetEnd = Math.Min(excel.WSheetCount(0), excel.WSheetCount(1)); } } else { sheetEnd = excel.WSheetCount(1); } } else { sheetEnd = Convert.ToInt32(sheetWords[1]); } #endregion for (int sheetIndex = sheetStart; sheetIndex <= sheetEnd; sheetIndex++) { excel.OperSheet(sheetIndex, 0); excel.OperSheet(sheetIndex, 1); #region //源操作区范围确定rangeRegion[Point,Way,源] rangeRegion[0, 0, 1] = Convert.ToInt32(rangeRowWords[0]); rangeRegion[0, 1, 1] = Convert.ToInt32(rangeColumnWords[0]); if (rangeRowWords[1] == "#") { rangeRegion[1, 0, 1] = excel.RowCount(1, standardColumn); } else { rangeRegion[1, 0, 1] = Convert.ToInt32(rangeRowWords[1]); } if (rangeColumnWords[1] == "#") { rangeRegion[1, 1, 1] = excel.ColCount(1, standardRow); } else { rangeRegion[1, 1, 1] = Convert.ToInt32(rangeColumnWords[1]); } #endregion if (rangeRegion[0, 0, 1] > rangeRegion[1, 0, 1] | rangeRegion[0, 1, 1] > rangeRegion[1, 1, 1]) { #region 空区范围处理 if (checkBox2.Checked) { textBoxMsg.Text += "[提示]\r\nfileIndex:" + Convert.ToString(fileIndex); textBoxMsg.Text += " | sheetIndex:" + Convert.ToString(sheetIndex) + "为空记录\r\n"; textBoxMsg.Refresh(); } #endregion } else { #region //目标操作区范围确定rangeRegion[Point,Way,目标] rangeRegion[0, 0, 0] = excel.RowCount(0, standardColumn) + 1; rangeRegion[0, 1, 0] = rangeRegion[0, 1, 1]; rangeRegion[1, 0, 0] = rangeRegion[0, 0, 0] + rangeRegion[1, 0, 1] - rangeRegion[0, 0, 1]; rangeRegion[1, 1, 0] = rangeRegion[1, 1, 1]; #endregion #region //操作区格式化 rangeString[0] = excel.Tools_NtoC(rangeRegion[0, 1, 0]) + Convert.ToString(rangeRegion[0, 0, 0]) + ":"; rangeString[0] += excel.Tools_NtoC(rangeRegion[1, 1, 0]) + Convert.ToString(rangeRegion[1, 0, 0]); rangeString[1] = excel.Tools_NtoC(rangeRegion[0, 1, 1]) + Convert.ToString(rangeRegion[0, 0, 1]) + ":"; rangeString[1] += excel.Tools_NtoC(rangeRegion[1, 1, 1]) + Convert.ToString(rangeRegion[1, 0, 1]); #endregion Excel.Range ran = excel.get_Range(rangeString[1], 1); excel.set_Range(rangeString[0], ran, 0); } } textBoxMsg.Text += "[提示]\r\n fileIndex:" + Convert.ToString(fileIndex); textBoxMsg.Text += " | 导入成功!\r\n"; textBoxMsg.Refresh(); excel.CloseExcel(1); } textBoxMsg.Text += "[提示]\r\n fileIndex:0 | 导入成功!\r\n"; textBoxMsg.Refresh(); excel.SaveAs(textBoxOutput.Text, 0); excel.CloseExcel(0); excel.CloseApp(); textBoxMsg.Text += "[全部完成]\r\n " + textBoxOutput.Text + "保存成功!"; textBoxMsg.Refresh(); textBoxInput.ReadOnly = false; buttonStart.Enabled = true;
解决方案:40分
前面加 “” 单引号