EPPlus:单元格值和公式中的区域设置

时间:2018-03-23 09:18:49

标签: c# excel localization epplus

我想使用EPPlus库将公式从C#应用程序导出到Excel工作表。

C#应用程序和Excel应用程序的区域设置是相同的,这意味着小数分隔符在我的情况下是逗号。

分配时

class Thread(QtCore.QThread): changePixmap = QtCore.pyqtSignal(QtGui.QPixmap) changedQue = QtCore.pyqtSignal(str) def run (self): capture = cv2.VideoCapture('sample_video.mp4') while True: check, frame = capture.read() cv2.rectangle(frame,(120,80),(520,390),(255,0,0),5) convertToQtFormat = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0], QtGui.QImage.Format_RGB888) convertToQtFormat = QtGui.QPixmap.fromImage(convertToQtFormat) video = convertToQtFormat.scaled(290, 220, QtCore.Qt.KeepAspectRatio) self.changePixmap.emit(video) face = detector.detect_faces(frame) if a_face in face: self.changedQue.emit('True') class MainGUI(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QtWidgets.QMainWindow.__init__(self, *args, **kwargs) self.setupUi(self) th = Thread(self) th.changePixmap.connect(self.label.setPixmap) th.changedQue.connect(self.on_changedQue, QtCore.Qt.QueuedConnection) self.label.show() th.start() @QtCore.pyqtSlot(str): def on_changedQue(self, que): if que == "True": print('Yey')

Excel将正确使用

(例如,如果值为double),

同样不适用于

sheet.Cells[row, column].Value = value;

其中,公式是以" ="开头的字符串;并包含正确包含逗号作为小数分隔符的字符串转换双精度数。

在后一种情况下,Excel会说文档已损坏,而它会接受包含点作为小数分隔符的公式。

我不想开始用点替换逗号,反之亦然,但要将正确的语言环境链保存到Excel公式中。

这可以以某种方式完成吗?我想我需要通过EPPlus设置告诉Excel公式中的语言环境设置与普通单元格内容相同(其中一切都按预期工作)。

1 个答案:

答案 0 :(得分:0)

EPPlus中可用的本地化选项是NumberFormat属性,用于设置所需的数字格式。

在您的情况下,您可以尝试:

sheet.Cells[row, column].Numberformat.Format="#,##0.00"; //set your format of dots & commas